WO2003081388A2 - Procede, systeme et logiciel pour un systeme spatial ameliore d'entreprise - Google Patents

Procede, systeme et logiciel pour un systeme spatial ameliore d'entreprise Download PDF

Info

Publication number
WO2003081388A2
WO2003081388A2 PCT/US2003/008296 US0308296W WO03081388A2 WO 2003081388 A2 WO2003081388 A2 WO 2003081388A2 US 0308296 W US0308296 W US 0308296W WO 03081388 A2 WO03081388 A2 WO 03081388A2
Authority
WO
WIPO (PCT)
Prior art keywords
data
layer
user
spatial
access
Prior art date
Application number
PCT/US2003/008296
Other languages
English (en)
Other versions
WO2003081388A3 (fr
Inventor
David N Dyrnaes
Tim A Von Kaenel
Jonathan D Goodwin
Jared P Wayman
C Suresh Kumar
Craig E Trivelpiece
Joseph Mihalich
Anthony P Jenkins
Mark A Stier
Richard H Odom, Jr
Original Assignee
Questerra, Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Questerra, Llc filed Critical Questerra, Llc
Priority to CA002479375A priority Critical patent/CA2479375A1/fr
Priority to AU2003233407A priority patent/AU2003233407A1/en
Priority to EP03728254A priority patent/EP1502175A2/fr
Publication of WO2003081388A2 publication Critical patent/WO2003081388A2/fr
Publication of WO2003081388A3 publication Critical patent/WO2003081388A3/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases

Definitions

  • the present invention is generally related to improved spatial systems and geospatial information systems.
  • Spatial and geospatial information systems involve the use of spatial and or geospatial information to explore, analyze, visualize, and communicate spatial relationships.
  • SIM Spatial Information Management
  • GIS Geographic Information Systems
  • BSS Business Support Systems
  • Personal Productivity Applications and the Internet.
  • GIS Geographic Information Systems
  • BSS Business Support Systems
  • ERP Enterprise Resource Planning
  • CRM Customer Relationship Management
  • SCM Supply Chain Management
  • SM users are able to access static, pre-spatially referenced data sets that have been stored on very large storage devices.
  • a data set is a subset of related data.
  • raster imagery such as LanSat, DOQQs, DRGs, etc. or vector data such as roads, lakes, landmarks, etc.
  • vector data such as roads, lakes, landmarks, etc.
  • raster data refers to one or more pre-generated images.
  • vector data refers to a set of coordinate numbers that are converted to an image.
  • a salesperson wants to make informed decisions by visualizing how certain marketing promotions are working out, the sales person needs to be able to view the sales data overlaid with other geospatial information, e.g., maps, county boundaries, competitor locations, etc. Then, a salesperson needs to be able to select certain areas on the map to determine why some areas are providing poor results based on the specific marketing promotions which have been used in the specific areas.
  • geospatial information e.g., maps, county boundaries, competitor locations, etc.
  • a salesperson must have the ability to simultaneously access enterprise data (i.e., data generated by an enterprise, which may also be referred to as "corporate data” or “enterprise data”, such as sales data, marketing data, employee data, etc.) and third party data (i.e., data generated outside of the enterprise accessing the data, such as, public data, data retrieved from third party sources such as the U.S. Postal Service or Dunn & Bradstreet, etc.) that provide demographic information about the selected area.
  • enterprise data i.e., data generated by an enterprise, which may also be referred to as "corporate data” or “enterprise data”, such as sales data, marketing data, employee data, etc.
  • third party data i.e., data generated outside of the enterprise accessing the data, such as, public data, data retrieved from third party sources such as the U.S. Postal Service or Dunn & Bradstreet, etc.
  • a client application sends a request 101 via a network 102 to a server computer 103.
  • the server computer 103 retrieves the requested data from a data store 104 and generates individual images for each data layer 105.
  • the individual images are spatially referenced images (e.g., an image in which each point is associated with a longitude and latitude).
  • the server computer 103 obtains data from the data store 104.
  • the server computer 103 combines the individual image layers 106 into one single composite image 107.
  • the composite image 107 is then sent via a network to the client application 101 to be displayed.
  • the server computer needs to combine the images into one composite image, and then send the composite image to the client, several problems occur. For example, when a user wants to view the composite image with some changes (e.g., view a new data layer, view one less data layer, or change the order of the layers), the server computer 103 regenerates individual images for each data layer to be viewed and sends a new composite image to the client application. This adds additional processing load on the server computer and requires many roundtrip transactions between the client application 101 and the server computer 103.
  • some changes e.g., view a new data layer, view one less data layer, or change the order of the layers
  • a client application 201 sends a request via a network 202 to a server computer 203.
  • the server computer 203 retrieves the requested data from a data store 204.
  • the raw data for each data layer is retrieved as individual data sets 205 and sent via network 202 to a complex client application 201.
  • the client application 201 stores each data set in data store 208.
  • the client application 201 will render and convert 209 individual sets of raw data to displayable images 210.
  • the client application 201 will combine the displayable images into one composite image 211 and finally display the composite image 211 to the user.
  • the technique illustrated in FIG. 2 requires a complex client software application 201 to contain the logic to convert and, possibly, combine raw spatially referenced data into viewable data layers. Additionally, raw data, rather than images, are sent to the client application 201, which results in data being copied to and stored on client computers, rather than being centralized in a single data store.
  • GIS Geographic Information Systems
  • FIG. 3 illustrates a conventional process for converting data.
  • customer data 312 is tabular data.
  • the customer data 312 is uploaded in block 320.
  • location information e.g., addresses
  • Cleansing of location information refers to determining that the location information is valid and accurate by, for example, comparing the location information to data in a data store available from the U.S. Postal Service or Dunn and Bradstreet (which maintains information on businesses).
  • a set of spatial coordinates are generated from the cleansed location information, and this is often done using a conventional geocoding application that generates a set of spatial coordinates (e.g., latitude and longitude) for each data element (e.g., customer record) in this example.
  • the result of geocoding is spatial coordinate data 370, which is stored in spatial data store 360.
  • a new data set is created by merging the customer data 312 with the spatial coordinate data 370. This data then needs to be uploaded back to the server computer 320 from the spatial data store 360. Then, rendering specification data is generated, which describes how the data should be presented as a spatial layer, and the hardcoded table is displayed in block 380.
  • the resulting transformed data is typically no longer usable by existing applications.
  • a common solution to this problem is to keep the original data intact and create a new data set to be loaded and viewed spatially, which includes the original data concatenated with the spatial coordinate data. This causes data integrity problems with the original data getting out of synch with the data created for spatial viewing.
  • the resulting data cannot be made visible to the client applications without restarting the client and server processes.
  • Conventional systems use configuration files at startup time to read information about the data presented to the client applications.
  • the server applications or server processes are shut down, configuration files are updated, and the server applications or server processes are restarted in order to provide access to new or modified data to client applications. This process logs out the client applications, and the client server session may need to be restarted before the new or modified data can be accessed and displayed.
  • a further problem is that conventional systems provide access control to data with one of two approaches.
  • access control is done at the application level. In other words, a user is granted or denied access to the application based on the user's credentials. Once the user is granted access to the application, the user may view all data the application can access. Therefore, all users who use the application may view all the data at the server computer.
  • Second, access to data is controlled by access control mechanisms provided by back end data store technology. This requires the application to access the back end data store with the same credentials used to access the application itself. Both approaches have several problems. [0022] With the first approach, all users of an application get to view all data that the application can access, and access is not restricted to a subset of the data based on the user of the application.
  • users need to be granted access to different sets or groupings of data, multiple instances of the application or multiple processes within the same application need to be run, each working with a different set or grouping of data.
  • users view all data within a data set, and access is not restricted to some records or data elements within a data set based on attributes associated with the user (e.g., security clearance level). Take for example a data set that contains the customer data for a company. The data set contains customer data for the entire country.
  • Conventional spatial systems do not restrict access of users that are part of the west coast sales team to only the customer data for the west coast.
  • a completely new data set that contains only the west coast customer information would have to be created in conventional systems for access to be limited.
  • the credentials of the users of the application are tied directly to the credentials used to access the back end data store. This creates a very cumbersome process of user access right management within the application and from the perspective of the personnel setting up access rights to the server computer. Moreover, the application gets tied into the back end data store technology used, and it is extremely difficult to replace back end data store technology with a new technology as it becomes available. Also, application code gets extremely complex when multiple data stores with different access requirements are used. [0024] Further problems occur in conventional systems when displaying images from pyramided data. A set of related spatially referenced data is commonly referred to as a data layer.
  • a typical image, seen by a user in client software will consist of spatially referenced images, each of which is a data layer, overlaid on top of one another utilizing spatial queries of spatial coordinates (e.g., latitude and longitude).
  • spatial queries of spatial coordinates e.g., latitude and longitude.
  • Pyramiding is a technique in which the data for a data layer is stored in more than one data set. All the data sets contain data for the same subject matter in the same geographical area of interest (i.e., subsets of data based on a particular area being viewed), but the level of detail varies from one data set to another. These data sets can be arranged in a pyramid, such that the data sets at the top of the pyramid have the data with the least amount of detail. Data in the data sets at the lower levels in the pyramid have progressively higher level of detail, with the data set at the lowest level in the pyramid containing the most detailed data.
  • each data set at a higher level in the pyramid contains less data than the data set at the pyramid level immediately below. Therefore, it takes less time to convert the data to a spatially referenced image at a higher level in the pyramid than at the pyramid level below.
  • the spatially referenced image is generated from data sets at progressively higher levels in the pyramid, the time taken by the server computer to create the spatially referenced image should not increase as a user zooms out.
  • the typical pyramid consist of several levels with the data set at each level being used for a fixed range of zoom scales, with a predefined minimum zoom scale and a predefined maximum zoom scale.
  • the data set from the next higher level in the pyramid will be used to generate the spatially referenced image.
  • the data set from the pyramid level at the next lower level in the pyramid is used to generate the spatially referenced image.
  • the data for each level in the pyramid will be stored as separate data sets.
  • FIG. 4 illustrates a pyramid 410 for roads data.
  • FIG. 5 illustrates conventional processing when data is pyramided.
  • Each level of the pyramid 410 is stored as a table 550 at GIS system 530.
  • Each table is a data set, and each data set stored in the data store is represented as one data layer in a user interface (UT) screen presented to a user.
  • UT user interface
  • the pyramid depicted in FIG. 4 is presented as five data layers to the user in FIG. 5. So instead of seeing the related data in the different levels of a pyramid as one data layer, the user sees five different data layers.
  • a further problem involves third party systems.
  • a third party system is one that is outside of a spatial system.
  • Some examples of business logic include, for example, when editing a spatial layer, it maybe necessary, that prior to saving the edit, to verify that the areas of plots of land must be smaller than a certain size, a 4 minimum distance from a river, contained within other plots, etc.
  • Validations may include basic editable data element (e.g., graphical object, tabular data, etc.) validations (e.g.,validations that make sure only well formed graphical objects are created).
  • Other validations may include the rules about the relationships between various graphical objects or data layers. Often, several different software packages are purchased, installed, and configured to get spatial capability.
  • GIS Geographic Information Systems
  • a composite image viewed by a user consists of images from multiple data layers overlaid on top of one another.
  • the spatial data may be in a raster data or vector data format.
  • Raster data refers to pre- generated images that may need to be cropped to fit the viewing area desired by the user.
  • Vector data is a set of coordinate numbers that are converted to an image.
  • GIS Geographic Information Systems
  • Customizing the data view includes actions such as turning on or off a layer, reordering data layers and highlighting layer objects within a data layer by selecting the objects with a selection tool.
  • Users may also add annotations to the view by drawing on the image viewing area using an annotation tool.
  • GIS systems provide two types of functionality for saving customized views of data.
  • some GIS systems provide the ability to save only a limited subset of customizations, such as annotations, in a specific user area on the server system, but they do not provide a means to share these customized views with other users of the server computer.
  • other GIS systems allow a limited set of customizations to be shared with other users, but they do not provide the ability to limit access to a subset of the users of the server computer.
  • the first type of functionality provides access limited to only the editor/author of the customized view of the data (i.e., the project) and no other user.
  • These GIS systems do not have the ability to save all customization done by the user as a project, then share this project with other users, to properly discuss and possibly enable the other users to provide their inputs, comments, and modifications to the project on-line. That is, the first type of functionality lacks on-line collaboration of a project within a GIS system.
  • the second type of functionality provides access to all users of the system of the newly customized data (Le., the project). Such open access creates the problem that the project will not be confidential and all users of the system will be able to view and further modify the project on-line.
  • This functionality creates lack of on-line confidentiality, security, and integrity of a project within a GIS system.
  • SUMMARY OF THE INVENTION Provided are a method, system, and program for providing access to spatial data.
  • a request for data is received.
  • Enterprise and third party data are integrated.
  • the integrated data is processed.
  • Spatially referenced results are generated using the processed data.
  • the spatially referenced results are returned in response to the request.
  • the described implementations of the invention provide a method, system, and program to support data access for spatially referenced and non-spatially referenced data. Solutions are provided for standardizing data and integrating different business rules to support the integration of both enterprise data and third party data for spatial representation. Moreover, a secure, scalable, web-based architecture is provided that allows enterprise and third party data to be viewed, analyzed, and shared.
  • FIGs. 1-5 illustrate various problems in the prior art.
  • FIG. 6 illustrates the use of spatially referenced data in accordance with certain implementations of the invention.
  • FIG. 7 illustrates, in a block diagram, workflow through a computing environment in accordance with certain implementations of the invention.
  • FIG. 8 illustrates services in accordance with certain implementations of the invention.
  • FIGs. 9A-9E illustrate various computer system architectures in accordance with certain implementations of the invention.
  • FIG. 10 illustrates a software architecture of a server system in accordance with certain implementations of the invention.
  • FIGs. 11A and 11B illustrate software and Web services architectures in accordance with certain implementations of the invention.
  • FIG. 12 illustrates processing for integrating third party data and enterprise data in accordance with certain implementations of the invention.
  • FIG. 13 illustrates multiple data layering in accordance with certain implementations of the invention.
  • FIG. 14 illustrates logic for multiple data layering in accordance with certain implementations of the invention.
  • FIG. 15 illustrates a distributed computing environment in accordance with certain implementations of the invention.
  • FIGs. 16A-16B illustrate data preparation in accordance with certain implementations of the invention.
  • FIG. 17 illustrates logic for data preparation and activation in accordance with certain implementations of the invention.
  • FIG. 18 illustrates metadata stored in metadata store for use in controlling access to data in accordance with certain implementations of the invention.
  • FIG. 19 illustrates logic when a client request to view information as data arrives at the server system in accordance with certain implementations of the invention.
  • FIG. 20 illustrates a user hierarchy in accordance with certain implementations of the invention.
  • FIG. 21 illustrates a single data layer presentation that is provided for a single pyramided spatially referenced data set in accordance with certain implementations of the invention.
  • FIG. 22 illustrates a metadata store, a spatial data store, a business data store, and relationships among the data stores in accordance with certain implementations of the invention.
  • FIG. 23 illustrates logic for processing a client request to view data in accordance with certain implementations of the invention.
  • FIG. 24 illustrates logic for the interaction of metadata tables to identify the information to be sent in response from a request for a data layer.
  • FIG. 25 illustrates logic for printing multiple data layers in accordance with certain implementations of the invention.
  • FIG. 26 illustrates logic for order fulfillment in accordance with certain implementations of the invention.
  • FIG. 27 illustrates logic for e-commerce processing in accordance with certain implementations of the invention.
  • FIG. 28 illustrates an enterprise spatial system interfacing with a third party system in accordance with certain implementations of the invention.
  • FIG. 29 illustrates an editing example in accordance with certain implementations of the invention.
  • FIGs. 30A-30C illustrate editing in accordance with certain implementations of the invention.
  • FIGs. 31A-31B illustrate logic for editing in accordance with certain implementations of the invention.
  • FIGs. 32 and 32 illustrate examples of collaboration in accordance with certain implementations of the invention.
  • FIG. 34 illustrates metadata tables in a metadata store that are used to enable collaboration in accordance with certain implementations of the invention.
  • FIG. 35 illustrates logic for enabling collaboration in accordance with certain implementations of the invention.
  • FIGs. 36 and 37 illustrate logic for collaboration in accordance with certain implementations of the invention.
  • FIG. 38 illustrates a UI screen provided by the enterprise spatial system for online Icnowledge mapping in accordance with certain implementations of the invention.
  • FIG. 39 illustrates in a UI screen constraints in workspace in accordance with certain implementations of the invention.
  • FIGs. 40A - 40E illustrate UI screens in accordance with certain implementations of the invention.
  • FIG. 41 illustrates a section title in accordance with certain implementations of the invention.
  • FIG. 42 illustrates a control prompt in accordance with certain implementations of the invention.
  • FIG. 43 illustrates an Edit box and a Drop Down list box in accordance with certain implementations of the invention
  • FIG. 44 illustrates Radio button controls and Check Box controls in accordance with certain implementations of the invention.
  • FIG. 45 illustrates a sample Grid Display in accordance with certain implementations of the invention.
  • FIG. 46 illustrates a table display in accordance with certain implementations of the invention.
  • FIG. 47 illustrates a control frame in accordance with certain implementations of the invention.
  • FIG. 48 illustrates command buttons in accordance with certain implementations of the invention.
  • FIG. 49 illustrates hyperlinks in accordance with certain implementations of the invention.
  • FIG. 50 illustrates a pop up dialog box in accordance with certain implementations of the invention.
  • FIG. 51 illustrates a small pop up dialog box in accordance with certain implementations of the invention.
  • FIG. 52 illustrates a large pop up dialog box in accordance with certain implementations of the invention.
  • FIG. 53 illustrates a color picker in accordance with certain implementations of the invention.
  • FIG. 54 illustrates a Message UI screen in accordance with certain implementations of the invention.
  • FIG. 55 illustrates a UI screen before an error has occurred in accordance with certain implementations of the invention.
  • FIG. 56 illustrates UI screen in accordance with certain implementations of the invention.
  • FIG. 57 illustrates a pop up error message in accordance with certain implementations of the invention.
  • FIG. 58 illustrates logic for the registration process for transaction-based users in accordance with certain implementations of the invention.
  • FIG. 59 illustrates common registration wizard elements in accordance with certain implementations of the invention.
  • FIG. 60 illustrates a registration UI screen requesting user login information in accordance with certain implementations of the invention.
  • FIGs. 61 and 62 illustrate cancel registration and cancellation confirmation UI screens, respectively, in accordance with certain implementations of the invention.
  • FIG. 63 illustrates logic for login in accordance with certain implementations of the invention.
  • FIG. 64 illustrates common login UI screen elements in accordance with certain implementations of the invention.
  • FIG. 65 illustrates a main login UI screen in accordance with certain implementations of the invention.
  • FIG. 66 illustrates a login UI screen in accordance with certain implementations of the invention.
  • FIG. 67 illustrates a shared secret UI screen in accordance with certain implementations of the invention.
  • FIG. 68 illustrates a change password UI screen in accordance with certain implementations of the invention.
  • FIG. 69 illustrates conceptual logic for the main UI screen in accordance with certain implementations of the invention
  • FIG. 70 illustrates sample portal content in accordance with certain implementations of the invention.
  • FIG. 71 illustrates a main UI screen in accordance with certain implementations of the invention.
  • FIGs. 72 A - 72K illustrate details of a find location portion of the UI screen in accordance with certain implementations of the invention.
  • FIG. 73 illustrates an Ambiguous Location pop up dialog box 7310 without a scroll bar in accordance with certain implementations of the invention.
  • FIG. 74 illustrates an Ambiguous Location pop up dialog box with a scroll bar in accordance with certain implementations of the invention.
  • FIG. 75 illustrates a Base Image Conflict pop up dialog box in accordance with certain implementations of the invention.
  • FIG. 76 illustrates an Open AOI File dialog box in accordance with certain implementations of the invention.
  • FIG. 77 illustrates a Select Base Image portion of the main UI screen in accordance with certain implementations of the invention.
  • FIG. 78 illustrates a Data Layers UI screen in accordance with certain implementations of the invention.
  • FIG. 79 illustrates custom tab navigation control in accordance with certain implementations of the invention.
  • FIG. 80 illustrates a UI screen after the Show all categories tab has been selected in accordance with certain implementations of the invention.
  • FIG. 81 illustrates a symbol picker UI screen in accordance with certain implementations of the invention.
  • FIGs. 82A-82C illustrate line Color Picker pop dialog boxes in accordance with certain implementations of the invention.
  • FIG. 83 illustrates a Change Data Layer Order pop dialog box in accordance with certain implementations of the invention.
  • FIG. 84 illustrates an Edit Favorites pop up dialog box in accordance with certain implementations of the invention.
  • FIG. 85 illustrates a Change Detection pop up dialog box in accordance with certain implementations of the invention.
  • FIG. 86 illustrates a Mapping and Analysis portion of the main UI screen in accordance with certain implementations of the invention.
  • FIG. 87 illustrates a Map window in accordance with certain implementations of the invention.
  • FIG. 88 illustrates a map frame in accordance with certain implementations of the invention.
  • FIG. 89 illustrates a docking bar in accordance with certain implementations of the invention.
  • FIG. 90 illustrates a docking bar with a toolbar, attributes bar, and prompt bar in accordance with certain implementations of the invention.
  • FIG. 91 illustrates expansion docking in accordance with certain implementations of the invention.
  • FIGs. 92A-92O illustrate a toolbar, states of an icon, and various tools in accordance with certain implementations of the invention.
  • FIG. 93 illustrates an example of measure tool use in UI screen 9310 in accordance with certain implementations of the invention.
  • FIGs. 94A-94R illustrate various tools in accordance with certain implementations of the invention.
  • FIGs. 95A-95F illustrate toolbars in accordance with certain implementations of the invention.
  • FIG. 96 illustrates a table in which tools described herein may be grouped in accordance with certain implementations of the invention.
  • FIGs. 97A-97D illustrate attribute bars in accordance with certain implementations of the invention.
  • FIGs. 98A-98B illustrates Point n' View pop up dialog boxes in accordance with certain implementations of the invention.
  • FIG. 99 illustrates a Change Drawing Object Order pop up dialog box in accordance with certain implementations of the invention.
  • FIG. 100 illustrates a Point n' Attribute pop up dialog box in accordance with certain implementations of the invention.
  • FIG. 101 illustrates a push pin in accordance with certain implementations of the invention.
  • FIG. 102 illustrates a Setup Point n' Attribute pop up dialog box in accordance with certain implementations of the invention.
  • FIG. 103 illustrates a Buffering pop up dialog box in accordance with certain implementations of the invention.
  • FIG. 104 illustrates a Boolean Query pop up dialog box in accordance with certain implementations of the invention.
  • FIG. 105 illustrates a reference map in accordance with certain implementations of the invention.
  • FIG. 106 illustrates a Map Summary window in accordance with certain implementations of the invention.
  • FIG. 107 illustrates an Analysis Summary window in accordance with certain implementations of the invention.
  • FIG. 108 illustrates Command buttons in accordance with certain implementations of the invention.
  • FIG. 109 illustrates scaling the main UI screen to a different resolution UI screen in accordance with certain implementations of the invention.
  • FIG. 110 illustrates table that identifies the size of the Map window at some resolutions in accordance with certain implementations of the invention.
  • FIG. Ill illustrates logic for creating a map in accordance with certain implementations of the invention.
  • FIG. 112 illustrates a map layout window in accordance with certain implementations of the invention.
  • FIG. 113 illustrates a Map Preview UI screen in accordance with certain implementations of the invention.
  • FIG. 114 illustrates an example of a download dialog box in accordance with certain implementations of the invention.
  • FIG. 115 illustrates a save file UI screen in accordance with certain implementations of the invention.
  • FIG. 116 illustrates logic for purchasing data in accordance with certain implementations of the invention.
  • FIG. 117 illustrates a first data buy UI screen in accordance with certain implementations of the invention.
  • FIG. 118 illustrates an example imagery pop up dialog box in accordance with certain implementations of the invention.
  • FIG. 119 illustrates a second data buy UI screen providing data options in accordance with certain implementations of the invention.
  • FIG. 120 illustrates a third data buy UI screen with a purchase summary in accordance with certain implementations of the invention.
  • FIG. 121 illustrates a change shipping information pop up dialog box in accordance with certain implementations of the invention.
  • FIG. 122 illustrates a change billing information pop up dialog box in accordance with certain implementations of the invention.
  • FIG. 123 illustrates a Full Report pop up dialog in accordance with certain implementations of the invention.
  • FIG. 124 illustrates a download dialog box in accordance with certain implementations of the invention.
  • FIG. 125 illustrates a Full Report pop up dialog box with Boolean query in accordance with certain implementations of the invention.
  • FIG. 126 illustrates highlighting in a Full Report pop up dialog box with Boolean query in accordance with certain implementations of the invention.
  • FIG. 127 illustrates a file menu in accordance with certain implementations of the invention.
  • FIG. 128 illustrates processing for a New operation in accordance with certain implementations of the invention.
  • FIG. 129 illustrates a New Project UI screen in accordance with certain implementations of the invention.
  • FIG. 130 illustrates a Select Template UI screen in accordance with certain implementations of the invention.
  • FIG. 131 illustrates processing for an Open operation in accordance with certain implementations of the invention.
  • FIG. 132 illustrates an Open Project UI screen in accordance with certain implementations of the invention.
  • FIG. 133 illustrates logic for processing a Save operation in accordance with certain implementations of the invention.
  • FIG. 134 illustrates a Save Project UI screen in accordance with certain implementations of the invention.
  • FIG. 135 illustrates an Email Form UI screen in accordance with certain implementations of the invention.
  • FIG. 136 illustrates logic for supporting transactional customers in accordance with certain implementations of the invention.
  • FIG. 137 illustrates a main UI screen for supporting transactional customers in accordance with certain implementations of the invention.
  • FIG. 138 illustrates a first Shopping UI screen with an Order Summary in accordance with certain implementations of the invention.
  • FIG. 139 illustrates a second Shopping UI screen with Contact Information in accordance with certain implementations of the invention.
  • FIG. 140 illustrates a third Shopping UI screen with Payment Information in accordance with certain implementations of the invention.
  • FIG. 141 illustrates a fourth Shopping UI screen with Purchase Summary in accordance with certain implementations of the invention.
  • FIG. 142 illustrates a fifth Shopping UI screen with Acknowledgment in accordance with certain implementations of the invention.
  • FIG. 143 illustrates logic for entering the shopping cart from the create map functionality in accordance with certain implementations of the invention.
  • FIG. 144 illustrates a first Map Shopping UI screen with Order Summary in accordance with certain implementations of the invention.
  • FIG. 145 illustrates a second Map Shopping UI screen with Purchase
  • FIG. 146 illustrates logic for entering the shopping cart by selecting analysis form the main UI screen in accordance with certain implementations of the invention.
  • FIG. 147 illustrates logic for shopping cart functionality when the user enters the shopping cart from the data purchase UI screens in accordance with certain implementations of the invention.
  • FIG. 148 illustrates a download dialog box in accordance with certain implementations of the invention.
  • FIG. 149 illustrates a Zoom layer pop up dialog box in accordance with certain implementations of the invention.
  • FIG. 150 illustrates selection of the Preferences menu in accordance with certain implementations of the invention.
  • FIG. 151 illustrates logic for processing a logoff in accordance with certain implementations of the invention.
  • FIG. 152 illustrates common Logoff UI screen elements in accordance with certain implementations of the invention.
  • FIG. 153 illustrates a first Logoff UI screen in accordance with certain implementations of the invention.
  • FIG. 154 illustrates a Logoff Confirmation UI screen in accordance with certain implementations of the invention.
  • FIG. 155 illustrates navigation using the Back button and using the continue button in accordance with certain implementations of the invention.
  • FIG. 156 illustrates processing when there is a dropped connection in accordance with certain implementations of the invention.
  • FIG. 157 illustrates a structure that shows variables that are involved in the pricing structure in accordance with certain implementations of the invention.
  • FIG. 158 illustrates co-branding for a welcome UI screen in accordance with certain implementations of the invention.
  • FIG. 159 illustrates an example of a co-branded version of the main UI screen in accordance with certain implementations of the invention.
  • FIGs. 160 and 161 illustrate examples of a pop up dialog box and of a co-branded version of a secondary UI screen in accordance with certain implementations of the invention.
  • FIG. 162 illustrates a table of valid US state codes in accordance with certain implementations of the invention.
  • FIG. 163 illustrates a table of information to display in the Ambiguous
  • FIG. 164 illustrates a table of map layers of scale dependency in accordance with certain implementations of the invention.
  • FIG. 165 illustrates a table of some raster and vector data to be used in the ente ⁇ rise spatial system software in accordance with certain implementations of the invention.
  • FIGs. 166A-166B illustrate another table of some raster and vector data to be used in the ente ⁇ rise spatial system software in accordance with certain implementations of the invention.
  • FIG. 167 illustrates the business process and data flow supported by the ente ⁇ rise spatial system service and operational facilities in accordance with certain implementations of the invention.
  • FIG. 168 illustrates Web Services in accordance with certain implementations of the invention.
  • FIG. 169 illustrates an application services overview in accordance with certain implementations of the invention.
  • FIG. 170 illustrates content services in accordance with certain implementations of the invention.
  • FIG. 171 illustrates e-commerce services in accordance with certain implementations of the invention.
  • FIG. 172 illustrates data services in accordance with certain implementations of the invention.
  • FIG. 173 illustrates a spatial datamart in accordance certain implementations of the invention.
  • FIG. 174 illustrates maintenance services in accordance with certain implementations of the invention.
  • FIG. 175 illustrates operational dataflow for a Web Center in accordance with certain implementations of the invention.
  • FIG. 176 illustrates a deployment process workflow in accordance with certain implementations of the invention.
  • FIG. 177 illustrates data flow in accordance with certain implementations of the invention.
  • FIG. 178 illustrates an ADS40 center architecture in accordance with certain implementations of the invention.
  • FIG. 179 illustrates a GIS processing center in accordance with certain implementations of the invention.
  • FIG. 180 illustrates a GIS processing component architecture in accordance with certain implementations of the invention.
  • FIG. 181 illustrates a GIS processing network in accordance with certain implementations of the invention.
  • FIG. 182 illustrates an Operations Center in accordance with certain implementations of the invention.
  • FIG. 183 illustrates GIS storage components in accordance with certain implementations of the invention.
  • FIG. 184 illustrates development components in accordance with certain implementations of the invention.
  • FIG. 185 illustrates an Operations Center network in accordance with certain implementations of the invention.
  • FIG. 186 illustrates a Staging Cluster architecture in accordance with certain implementations of the invention.
  • FIG. 187 illustrates a Web Center Functional Architecture in accordance with certain implementations of the invention.
  • FIG. 188 illustrates an alternative architecture in accordance with certain implementations of the invention.
  • FIG. 189 illustrates a Web Center Component Architecture in accordance with certain implementations of the invention.
  • FIG. 190 illustrates a servlet architecture in accordance with certain implementations of the invention.
  • FIG. 191 illustrates a Client EJB Architecture in accordance with certain implementations of the invention.
  • FIG. 192 illustrates Health & Welfare Components in accordance with certain implementations of the invention.
  • FIG. 193 illustrates a GIS Data Loader in accordance with certain implementations of the invention.
  • FIG. 194 illustrates a Data Archiver in accordance with certain implementations of the invention.
  • FIG. 195 illustrates an architecture for the hardware, software and network architecture for an ente ⁇ rise spatial system web deployment in accordance with certain implementations of the invention.
  • FIG. 196 illustrates a Client Interface Architecture in accordance with certain implementations of the invention.
  • FIG. 197 illustrates a Thin Client Architecture in accordance with certain implementations of the invention.
  • FIG. 198 illustrates an architecture of a computer system that maybe used in accordance with certain implementations of the invention.
  • Implementations of the invention provide an ente ⁇ rise spatial system that supports functions (e.g., viewing, analysis, and other functions) for processing both ente ⁇ rise data and third party data.
  • the ente ⁇ rise data may include spatially referenced data and/or non-spatially referenced data
  • the third party data may include spatially referenced data and/or non-spatially referenced data.
  • Spatially referenced data refers to data that has associated coordinate data
  • non-spatially referenced data refers to data that does not have associated coordinate data.
  • Implementations of the invention provide analysis of spatially referenced and or non-spatially referenced data. The results of the analysis may be spatially referenced data and/or non-spatially referenced data.
  • implementations of the invention may store data as data layers, which may include spatially referenced data and/or non-spatially referenced data (e.g., a data element, table, etc.).
  • data layers may include spatially referenced data and/or non-spatially referenced data (e.g., a data element, table, etc.).
  • specific examples herein may refer to, for example, graphical objects, images or maps, the techniques of the invention are applicable to any type of data.
  • the ente ⁇ rise spatial system may store and/or process spatial and geospatial information, which include, for example, geographic reference data, including, but not limited to, vector data, raster data, and tabular data, such as, customer information, sales data, and marketing data.
  • each data element in a data set has coordinate data associated with the data element, such as an x, y and z coordinate.
  • geospatial data the coordinate data is tied to a point on earth. So, for example, the x coordinate becomes longitude, y coordinate becomes latitude, and the z coordinate becomes elevation. Therefore, geospatial data is a subset of spatial data, and geospatial information systems are a subset of spatial information systems. Although examples herein may refer to geospatial data or geospatial information systems, the techniques of the invention are applicable to any type of data or information processing system.
  • Implementations of the invention provide a method, system, and program for providing data processing systems coupled with one or more live (up to and including 24 hours x 7days) data centers to securely share, access, and or distribute data from, for example, ente ⁇ rise data stores at an ente ⁇ rise combined with hosted data (e.g., ente ⁇ rise or third party data) from the ente ⁇ rise spatial system.
  • the combined data is used to generate data layers to allow users to view, analyze, and share spatially referenced data using different client software (e.g., client applications). That is, different client applications may retrieve the same data from the server system and provide different presentations of the data to the user, based on the needs of the user.
  • implementations of the invention provide solutions for the above described problems through, for example, software, which can simultaneously access ente ⁇ rise data and third party data, and then dynamically generate (e.g., by geocoding) spatially referenced data (e.g., graphical representation data on a map) based on a user's request.
  • software which can simultaneously access ente ⁇ rise data and third party data, and then dynamically generate (e.g., by geocoding) spatially referenced data (e.g., graphical representation data on a map) based on a user's request.
  • Geospatial information is very important for business. In order for companies to have an advantage over other competitors, the companies need to be able to make informed decisions in a short period of time. Analysis based on geospatial information improves understanding and communication of complex relationships, which fosters better decision making. When analysis is based on geospatial information, better business solutions are obtained from utilizing information resources data, analytical technical tools, and decision criteria rules.
  • Implementations of the invention are applicable to systems in which a spatial query is executed to deliver a result.
  • a spatial query is a query for which the query results are identified by analyzing spatial relationships between data.
  • One example of a spatial query is a query to identify all household locations within three miles of a department store.
  • implementations of the invention are applicable to all systems in which data (e.g., an image or a report) is generated on a server system and displayed on a client system.
  • implementations of the invention are applicable to Geographic Information Systems (GIS) and decision support systems based on spatial data.
  • GIS Geographic Information Systems
  • a server system is connected to one or more client systems via a network (e.g., the Internet).
  • the server system performs many functions, including, for example: enabling client software to log in to the server system and request and access data; uploading data from client software; retrieving and using data from a data store; generating data layers (e.g., spatially referenced images); sending data to the client software for display to a user; and, handling various notifications to the client software (e.g., a notification regarding new data added to the data store).
  • FIG. 6 illustrates the use of spatially referenced data in accordance with certain implementations of the invention.
  • Ente ⁇ rise data 600 includes, for example, sales data, Customer Relationship Management (CRM) data, Supply Chain Management (SCM) data, and assets data.
  • Third party data 610 includes, for example, maps, infrastructure data (e.g., roads, lakes, etc.), and demographics data
  • the ente ⁇ rise data 600 and the third party data 610 was not combined in a useful manner.
  • the ente ⁇ rise data 600 and third party data 610 is converted to spatially referenced data by associating geographic information (e.g., longitude and latitude) with non-spatially referenced data (e.g., sales data).
  • data layers 620 are generated with the spatially referenced data, and the data layers 620 are overlaid based on the longitude and latitude values to form a composite image 630 that integrates the ente ⁇ rise data 600 and the third party data 610.
  • a composite image 630 that integrates the ente ⁇ rise data 600 and the third party data 610.
  • FIG. 7 illustrates, in a block diagram, workflow through a computing environment in accordance with certain implementations of the invention.
  • FIG. 7 represents a system data work flow diagram for simultaneously integrating ente ⁇ rise data with third party data using a processing center and a live data center, processing spatially referenced data, and providing access to the data.
  • FIG. 7 illustrates several components of an ente ⁇ rise spatial system provided by implementations of the invention, including (1) a Geographical Information
  • GIS Global System
  • client software 750 executes on a client system 752, which has a display screen on which a UI screen or other data may be displayed for viewing by, for example, a user.
  • client system 752 has a display screen on which a UI screen or other data may be displayed for viewing by, for example, a user.
  • client system 752 is illustrated, it is to be understood that many client systems may access data in the production center 722 at any time, including other server systems acting as clients to the ente ⁇ rise spatial system.
  • Certain implementations of the invention provide a 24/7 live system that integrates and offers on-demand data (e.g., superior quality geographical imagery, associated industry or ente ⁇ rise specific data, such as, sales information), and analysis tools to ente ⁇ rises, government, industry, and the general public.
  • on-demand data e.g., superior quality geographical imagery, associated industry or ente ⁇ rise specific data, such as, sales information
  • analysis tools to ente ⁇ rises, government, industry, and the general public.
  • GIS processing center/operations center 710 which processes data (e.g., converting Tagged Image File Format (TIFF) to Joint Photographic Expert Group (JPEG) format) at run time, and makes the processed data available at run time to users without disrupting the data center 720 operations.
  • data e.g., converting Tagged Image File Format (TIFF) to Joint Photographic Expert Group (JPEG) format
  • ente ⁇ rise data sources 702, government/Freedom of Information (FOI) public data 704, and satellite imagery data 706 is input to the GIS processing center/operations center 710 in the form of vector data, tabular data, third party imagery, and/or raw tiled TIFF imagery.
  • FOI Freedom of Information
  • satellite imagery data 706 is obtained using ai ⁇ lanes flying over areas and taking photographs with cameras that provide high resolution images.
  • the data is stored in an interim archive tape library 712.
  • the GIS processing center 714 retrieves data from the interim archive tape library and forwards the data to pre-production processing 716.
  • the data is stored in the production center 722 for client software 750 access.
  • the GIS processing center/operations center 710 handles many different operations in pre-production processing 716 due to irregularities in GIS data from various sources.
  • the GIS Processing Center performs data compression (e.g., of image data) at run time during the data transformation stage. Compressing data is important because some data (e.g., GIS image data) cannot be accessed over the Internet due to the size of the data
  • some image data is in a graphical data format called TIFF.
  • TIFF is a tag-based image file format that is designed to promote the interchange of digital image data. TIFF provides amulti-pu ⁇ ose data format and is compatible with a wide range of scanners and image-processing applications.
  • TIFF is one of the most popular and flexible of the current public domain raster file formats.
  • implementations of the invention convert large image data to a compressed data format, such as JPEG.
  • JPEG permits a greater degree of compression than other image formats, such as TIFF, enabling quicker downloading times for larger graphics.
  • JPEG documents appear to retain almost complete image quality for most photographs.
  • the data acquisition state procures data from various sources (e.g., ente ⁇ rise data 702, government/FOI public data 704, and satellite imagery data 706). Data acquisition is an important function of the GIS processing center 714.
  • data extraction stage data is staged for use, the data integrity is verified, and data quality control is provided.
  • the data transformation stage the following actions occur on data: color fusion, histograms, matching, mosaicing, re-sampling, tiling, and compression, which are well known in the art.
  • the data center 720 includes a staging system 721. Data from the staging system 721 is sent to the production center 722. Data from the staging system 721 may also be stored at a master archive tape library 723 and sent to offsite storage 724.
  • the staging system 721 provides a replica of the production center 722 and is used to test the client software, ente ⁇ rise spatial system software (e.g., server software at servers in the ente ⁇ rise spatial system), and data.
  • the staging system 721 is used to ensure that a new version of client software and/or data will work correctly when deployed to the production center 722.
  • the production center 722 is used to store data accessed by users via client software 750.
  • the data center 720 supports many operations. For example, the data center 720 hosts raster data, vector data, and tabular data for users to access using various client software 750 (e.g., client applications such as, a browser client, a thin client, or an ente ⁇ rise client). Various techniques of accessing data (e.g., tabular data of sales information) from an ente ⁇ rise data store and geocoding non-spatially referenced data are supported.
  • the data center 720 also supports functions that require geocoding in the production center 722.
  • the data center 720 also manages network communications between ente ⁇ rise users and the data center 720.
  • the data center 720 supports linear scalability to be able to expand the ente ⁇ rise spatial system provided by implementations of the invention to handle larger data sets (i.e., larger amounts of data) at run time.
  • the data center 720 provides security and access controls to ente ⁇ rise users to securely access their ente ⁇ rise data, allows ente ⁇ rise users to simultaneously access dynamic data from their ente ⁇ rise data store 702 and the data center 720, and processes requests from, for example, client applications by supporting client applications' functionality.
  • the data center 720 also supports different types of analytical functions, such as querying for data, generating data reports, retrieving data layers, accessing data, and sharing and/or collaborating with multiple users.
  • the fulfillment center 730 receives orders for data (e.g., particular data, a particular image or a set of images), prepares the data (e.g., creates or collects the appropriate data), and delivers the data to a requested location. Further details of order fulfillment are provided below.
  • Ente ⁇ rise integration 740 allows users to access securely their ente ⁇ rise data that is stored outside of the data center 720. Ente ⁇ rise integration 740 also determines whether ente ⁇ rise data are pre-geocoded or not, and, if the ente ⁇ rise data is not pre-geocoded, the ente ⁇ rise data is parsed and geocoding information is provided by determining the proper longitude and latitude information to be associated with the ente ⁇ rise data elements (e.g., records). The ente ⁇ rise integration technology 740 also provides the ability to interact with and retrieve data from third party applications using various Application Programming Interfaces (API) exposed by the third party applications and makes the data available to the client systems of the data center 720.
  • API Application Programming Interfaces
  • the ente ⁇ rise integration technology 740 also provides various Application Programming Interfaces (API) to third party applications so that different third party applications, including ente ⁇ rise applications, can access production data from the data center 720.
  • APIs provide defined function calls to third party applications so that users can interact with the ente ⁇ rise spatial system provided by implementations of the invention to utilize stored data (e.g., raster data, vector data, and tabular data) for spatially analyzing ente ⁇ rise data.
  • stored data e.g., raster data, vector data, and tabular data
  • the APIs also allow third party applications to utilize the various analysis functions provided by the ente ⁇ rise spatial system.
  • the client software 750 allows users to manipulate spatial data interactively by making dynamic data requests from the data center 720.
  • the client software 750 includes, for example, browser-based clients, thin clients, thick clients, and ente ⁇ rise clients.
  • the client software 750 handles all user actions promptly and retrieves spatial data from the data center 720 in a timely manner.
  • the client software 750 and the data center 720 rely on using a multiple data layering mechanism. That is, unlike legacy GIS software, the data center 720 does not combine multiple data layers as one composite image when transmitting spatial data to users over a network. Instead, the data center 720 retrieves proper spatial data layers from various data stores based on client requests and converts the data layers to individual images.
  • FIG. 8 illustrates services in accordance with certain implementations of the invention.
  • Core spatial services 810 include, for example, storing third party data and ente ⁇ rise data for various businesses.
  • ente ⁇ rise data stored on-site at a business may be accessed, via, for example, a Virtual Private Network (VPN).
  • Healthcheck servers perform tests to ensure that all systems are working correctly.
  • Reporting servers are used to generate reports.
  • Data store servers link Extraction, Transformation, and Loading (ETL) servers connected to locally hosted and remotely hosted ente ⁇ rise data storage devices, reporting servers, and storage devices storing third party data.
  • ETL Extraction, Transformation, and Loading
  • Spatial servers perform spatial manipulation of data, which includes, for example, performing spatial queries and rendering spatial data layers.
  • Application servers coordinate the server tasks performed to satisfy requests made by client software (e.g., client software 750).
  • Web/Portal servers provide front end access to different software services provided by the production system 722.
  • the Web services 820 include, for example, login, finding of addresses, render maps, print maps, run queries, get reports, save maps, and get projects. Projects are saved user views of the data, including the results of spatial analysis performed by the user.
  • a network such as the Internet 830, enables the various services to communicate with each other.
  • Application services 840 perform particular functions.
  • each application service is a collection of distinct features 2012 that perform particular functions.
  • geocoding is a feature that performs the function of translating an address to a latitude/longitude pair.
  • Solution services 850 perform a combination of application functionality.
  • FIGs. 9A-9E illustrate various computer system architectures in accordance with certain implementations of the invention.
  • the customer's environment 902 performs data extraction 904, and the extracted data is sent to the ente ⁇ rise spatial system 910 via a network, such as the Internet 908.
  • the ente ⁇ rise spatial system is one in which third party data and/or ente ⁇ rise data is hosted (e.g., in a data store) and services provided by implementations of the invention are available (e.g., to a user at a client system accessing a server system in the ente ⁇ rise spatial system via client software).
  • the ente ⁇ rise spatial system 910 performs data sourcing 912, prepares data 914, has data storage 916, and performs core functions 918. In data sourcing 912, third party data is aggregated.
  • Preparing data 914 includes, for example, address cleansing, geocoding, and otherwise preparing data.
  • the data storage 916 stores both ente ⁇ rise and third party data.
  • the core functions 918 include, for example, Web services, report preparation and delivery, spatial analysis functions (such as spatial queries), business rules management, and collaboration among users. Data and results of the core functions supported by implementations of the invention are delivered from the ente ⁇ rise spatial system 910 to a client software interface, such as a browser interface 906, in the customer's environment via the Internet 908.
  • FIG. 9B differs from FIG. 9A in that data storage 916 at the ente ⁇ rise spatial system 910 stores third party data spatial data.
  • the ente ⁇ rise data extracted in the customer's environment 902 is sent to the ente ⁇ rise spatial system 910 for data preparation and is then returned to the customer's environment for data storage 920.
  • the ente ⁇ rise data is retrieved into the ente ⁇ rise spatial system 910 from the data storage 920 in the customer's environment 902 when core functions 918 are to be performed.
  • FIG. 9C differs from FIG. 9B in that third party data is prepared 914 in the ente ⁇ rise spatial system 910, while ente ⁇ rise data is prepared 930 in the customer's environment 902.
  • the ente ⁇ rise data is stored in data storage 920 in the customer's environment, and the ente ⁇ rise data is retrieved into the ente ⁇ rise spatial system 910 when core functions 918 are to be performed.
  • FIG. 9D differs from FIG. 9C in that the data storage 920 in the customer's environment stores both ente ⁇ rise and third party data spatial data. That is, third party data spatial data is no longer stored in the ente ⁇ rise spatial system 910.
  • the third party data spatial data is sent to the customer's environment 902 for storage. Additionally, the core functions 940 are performed in the customer's environment 902, rather than in the ente ⁇ rise spatial system 910.
  • FIG. 9E differs from FIG. 9D in that the ente ⁇ rise spatial system has been eliminated and all processing occurs in the customer's environment.
  • FIG. 10 illustrates a software architecture of a server system 1000 in accordance with certain implementations of the invention.
  • the server system 1000 includes a Web tier 1010, an application server tier 1020, a data provider tier 1030, a data store tier 1040, and a data integration tier 1050.
  • a Web tier 1010 includes a Web/Portal server, an authentication service, an input/protocol transform engine, a request dispatcher, and Web services components to support requests coming from client software and return different data layers to the client software.
  • the Web/Portal server communicates via HyperText Transfer Protocol (HTTP), HyperText Transfer Protocol over Secure Socket Layer (HTTPS) or Extensible Markup Language (XML).
  • HTTP HyperText Transfer Protocol
  • HTTPS HyperText Transfer Protocol over Secure Socket Layer
  • XML Extensible Markup Language
  • the Web/Portal server serves up data (e.g., map images and static pages).
  • the authentication service is an authentication module that plugs into the authentication framework of the Web/Portal server.
  • One such authentication service uses Lightweight Directory Access Protocol (LDAP) as a back end authentication service provider.
  • LDAP Lightweight Directory Access Protocol
  • the input/protocol transform engine provides the front end that understands the client protocol and converts the incoming requests to a canonical form to be used by subsequent server components.
  • the input/protocol transform engine does not attempt to parse the actual service requests, but wraps the service requests in a standard form to be parsed subsequently by the service request transform engine in the service logic components of the application server tier 1020.
  • the input/protocol transform engine supports two transform components: a Web Map Server/Web Feature Server (WMS/WFS) adapter and a Java Server Page (JSPyServlet adapter.
  • WMS/WFS adapter is a Web services front end.
  • the Web Map Server/Web Feature Server may be one defined by the Open GIS Consortium, Inc.
  • the JSP/Servlet adapter is a legacy server interface used by client software to send server requests wrapped in XML request packages.
  • the request dispatcher dispatches the incoming request to one of several subcomponents within the work flow manager, depending on the client software and the actual request being made.
  • the request dispatcher interfaces with a tracking system that performs tracking of user requests and system usage reporting.
  • An application server tier 1020 is divided into a business logic tier and a service logic tier.
  • the business logic tier includes a work flow manager, a session manager, an account manager, and content access control components to support administrative tasks related to servicing the user requests.
  • the administrative tasks performed at this tier may also include various e-commerce related transactions, such as handling purchase orders, shopping cart management, billing, managing user profiles, and managing accounts.
  • the work flow manager manages the functions that are adjunct to the services requested by the client software.
  • the work flow manager performs functions, such as checking access control to the data requested by the client, logging, tracking session validation, etc.
  • the work flow manager uses the session manager, account manager, and content access control components to perform these functions.
  • the work flow manager takes user requests from the client software and then makes function calls to different components to gather results.
  • the work flow manager component aggregates the results, converts the aggregated results to a format expected by the client software, and sends the converted results back to the Web tier 1010.
  • the Web tier 1010 uses the appropriate protocol (e.g., HTTP or XML) to send a response (which includes the results generated by the work flow manager) to the client software request.
  • HTTP HyperText Transfer Protocol
  • XML response
  • An optional content usage monitor component may be included in the business logic tier to monitor contents and resources used and provide the necessary data for billing and resource planning.
  • the content usage monitor component parses requests coming from a user via client software and logs parsed information to monitor how different contents or resources hosted by the server system are used. Contents in this context are application services and data made available to the users by the server system. Resources refer to system resources such as memory, file storage space, CPU utilization etc.
  • the service logic tier includes a service request transform engine, a service aggregator, data provider adapters, access filters (e.g., system, user or client), map assembler, feature assembler, metadata server, and business rules components to support various service logic.
  • the service logic tier image generation using mapping logic, spatial query analysis, report generation, and thematic report generation (i.e., generating a report based on a theme). For example, ente ⁇ rise data and spatially referenced data may be combined to show different colors on a map to show different sales information based on different counties.
  • the service request transform engine consists of a collection of parsers and response message builders. The service request transform engine understands the grammar used by the client software to request services from the server system and receive responses back from the server system. In certain implementations, there is one parser/response message builder for each type of client application. In particular, the service request transform engine standardizes client requests into a standard format for the service aggregator.
  • the service aggregator coordinates the activities of one or more data provider adapters, which retrieve data based on client requests and convert the data to a form requested by the client software, and includes one or more data providers.
  • a data provider adapter may be viewed as an intermediary that translates requests made by the service aggregator to a form that the actual data provider understands. This allows the service aggregator to interact with the data adapters in a common language/syntax.
  • the data provider adapter performs the appropriate translation to pass the request on to the data provider in a possibly different language/syntax expected by the data provider.
  • a single client request may require more than one data provider to service the request.
  • the data provider required to render a vector layer may be a data provider called the Map Server.
  • the client request may ask for more than one vector layer to be rendered.
  • the service aggregator may instantiate more than one Map Server and coordinate the activities of these data providers to generate the response for the client request. Examples of service aggregators are: map assembler, feature assembler, and metadata server. The service aggregator understands requests from the client software and makes specific function calls to obtain requested data layers or analysis results.
  • Data provider adapters are plug-in points for back-end data service providers that are aggregated into services that are offered by implementations of the invention.
  • the data provider adapters decouple the protocol and grammar used by a data service provider form the protocol and grammar used by the service aggregator.
  • Examples of data provider adapters are: a Map Server, ArcIMSTM (a service access protocol available from ESRI), Oracle® Spatial Query Engine (a data access protocol available from Oracle Co ⁇ oration), or ArcSDETM (a data access protocol available from ESRI).
  • the access filters are run-time embodiments of data access rules that are set up using metadata. Access filters are applied to all data accesses, irrespective of the data provider used to access the data.
  • the access filters receive business rules as input and use the business rules to filter data that may be accessed.
  • Access filters may be specified at a system level, at a per user level or by the client software.
  • System filters are applied to all data access requests irrespective of the user accessing the data.
  • User filters are filters that are customized for specific users. So, for example, user filters may be set up such that the users from a particular sales territory will see only data for their own sales territory.
  • Client filters are filtering rules requested by client software (e.g., client applications) based on user input.
  • the data provider tier 1030 includes a map server, a raster server, a report engine, a query engine, and a geocode server.
  • the map server converts vector data to T U 03/08296
  • the raster server converts raster data to viewable images.
  • the report engine generates reports requested by clients from data.
  • the report engine uses Style Reports (which is available from InetSoft Technology Co ⁇ .).
  • the spatial data store engine e.g., Oracle® Spatial Query Engine
  • the query engine provides spatial and non-spatial query access to data.
  • the geocoder provides services to geocode requests from client software.
  • the geocoder may comprise software available from S agent.
  • the data store tier 1040 includes a spatial data store engine and production tabular/vector data and raster data catalog. At this level, data access related functions are provided.
  • the data integration tier 1050 includes an extraction, transformation, and loading (ETL) component, a spatial data preparation engine, and a data manager.
  • the ETL component is used to perform ETL functions for real-time and batch oriented data processing for hosted data.
  • the ETL component comprises DT/StudioTM software available from Embarcadero Technologies, Inc.
  • the spatial data preparation engine is used for spatial manipulation of hosted data.
  • the spatial data preparation engine comprises a Feature Management Engine, which is available for purchase from Safe Software, Inc.
  • the spatial manipulation involves cleansing spatial geometries, merging geometries to make the data rendering faster, re-sampling to create vector pyramid layers, etc.
  • the data manager is used to create and deploy metadata for the hosted data.
  • FIG. 11 A illustrates a software and Web services architecture 1100 in accordance with certain implementations of the invention.
  • a data store is accessed via a data store access control layer.
  • the next outer layer includes data provider 03 08296
  • the ETL interfaces with a third party data source.
  • the spatial data preparation component accesses a third party data store.
  • the ETL and spatial data preparation components are used to store data in the data store.
  • the access to data provider adapters and the data they work with are controlled using metadata about the data providers and the data.
  • metadata acts as another software layer around the data providers and the data that the data providers work with.
  • the next outer layer mcludes all the functions and services offered by implementations of the invention to client software (e.g., client applications).
  • the next outer layer includes access control, which controls access to the functions and services at the layer beneath it.
  • the access control layer interfaces with an authentication module.
  • the authentication modules controls security functions such as logging in/logging out.
  • the Web front end which includes a portal, Web services/SOAP, and JSP/Servlets. Above the Web front end, are systems to which data and results may be delivered.
  • FIG. 1 IB illustrates an alternative software and Web services architecture 1110 in accordance with certain implementations of the invention.
  • a data store is accessed via a data store access control layer.
  • the next outer layer includes data provider adapters, such as a map server, an Oracle® Spatial Query Engine, an ETL, and a spatial data preparation component (for preparing data by, for example, geocoding the data).
  • the data provider adapters interface with metadata.
  • the next outer layer includes account/session management, a spatial application service, a rendering service, a metadata service, a data manager, a geocode service, and a report service.
  • the next outer layer includes access control.
  • the next outer layer includes functions, such as, login/logout, open projects, ping, GetFeatures/Save/UpdateFeatures, GetJmage, GetServiceMo, and GetGeocode.
  • GetFeatures/Save/UpdateFeatures retrieves, saves and updates spatial data in spatial data sets.
  • Getlmage generates a viewable image of spatial data.
  • GetServicelnfo retrieves metadata about data sets.
  • GetGeocode retrieves location information such as latitude and longitude from business data such as an address, intersection, name of place, landmark etc.
  • BSS business support systems
  • BSS solutions are very beneficial to businesses, there are many limitations as well, such as when customers want to visually analyze BSS data that they have stored in their data stores.
  • BSS data e.g., geographic information
  • Implementations of the invention are designed to integrate third party organization/ente ⁇ rise data and spatially referenced data.
  • third party data and ente ⁇ rise data maybe integrated for use in generating spatially referenced data layers.
  • the invention systems allow one government user to login from a browser that is hosted by, say, the manager of the invention system to access spatial data. At the same time, this government user can access the data from said user's own data store hosted by its government agency. However, because of access restrictions provided by the system manager, this user cannot access other third party data from different third parties. Furthermore, when users are accessing their organization's data T U 03/08296
  • the data is secure and hackers cannot tamper with the data.
  • FIG. 12 illustrates processing for integrating third party data and ente ⁇ rise data in accordance with certain implementations of the invention.
  • Control begins at block 1210 with retrieval of third party data.
  • ente ⁇ rise data is retrieved.
  • spatially referenced data layers are created using the retrieved third party data and ente ⁇ rise data.
  • Implementations of the invention provide a technique to generate and display composite images made of multiple data layers.
  • a server system generates individual spatially referenced images for each data layer, which may be referred to as "image layers".
  • a spatially referenced image or image layer is a type of data layer.
  • the server system sends each individual image layer to client software.
  • the client software overlays the image layers to display them as a single composite image.
  • FIG. 13 illustrates multiple data layering in accordance with certain implementations of the invention.
  • Certain implementations of the invention may be implemented in a large distributed computing environment.
  • the computing environment may include, for example, client software 1310, a server system 1320, a data store 1330, and a rendering system 1340.
  • the rendering system 1340 is separate from the server system 1320, however, in other implementations, the rendering system 1340 maybe part of the server system 1320.
  • a user utilizes the client software 1310 on a computer that is connected via a network 1315 to the server system 1320 to make a request for data.
  • An example of the user's request is a request for a view of customer information and locations in a specific sales territory.
  • the request is sent to the server system 1320, and appropriate data within a data store 1330 is accessed (e.g., raw data, tabular, raster data, vector data, etc.).
  • the data in this example may include customer information 1332, roads information 1331, and/or sales territory boundaries 1333.
  • Each data set of the retrieved data is processed by a rendering system 1340 to be transformed into a spatially referenced image (e.g., bitmap, JPEG, TIFF, Graphics Interchange Format (GIF), Portable Network Graphics (PNG), etc.).
  • a spatially referenced image e.g., bitmap, JPEG, TIFF, Graphics Interchange Format (GIF), Portable Network Graphics (PNG), etc.
  • GIF Graphics Interchange Format
  • PNG Portable Network Graphics
  • each data set in the data store corresponds to an image layer.
  • the image layers consist of a roads image layer 1351, a customer information image layer 1352, and a sales territory image layer 1353.
  • the individual image layers are sent, via a network 1315, to the client software 1310 at the user's computer.
  • the client software 1310 caches each individual image layer in local memory, and then uses image overlaying techniques known in the art to display the requested image layers to the user.
  • the image layers, in this example, the roads image layer 1351, the customer information image layer 1352, and the sales territory image layer 1353, are individually cached into memory and overlaid and displayed to the user.
  • FIG. 14 illustrates logic for multiple data layering in accordance with certain implementations of the invention.
  • Users may view and analyze data spatially in a client-server environment using client software.
  • image layers are presented to users in the client software UI screen as data layers.
  • the user may choose to view one or more data layers among the data layers available by "turning on” one or more desired data layers in the UI screen.
  • the user may choose not to view a data layer by "turning off the data layer in the UI screen.
  • control begins in block 1410 with receipt of a user request, which was submitted via a UI screen displayed by client software.
  • the client software allows users to control the viewing of different data layers by providing a Layer Control window in the UI screen that allows the user to turn on and off different data layers ((e.g., using a check box for each data layer on the UI screen) .
  • a Layer Control window in the UI screen that allows the user to turn on and off different data layers ((e.g., using a check box for each data layer on the UI screen) .
  • the client software does not need to go to a server system to request a new raster or vector data file if the client software already has that data layer in storage (e.g., in memory or on a connected storage device) on a client system.
  • images layers for data layers are created such that the empty areas in the spatially referenced image are transparent. This allows different data layers to be overlaid on top of each other without affecting the display of the data layers that are below.
  • the client software supports the multiple data layering mechanism by using Dynamic Hyper-Text Markup Language (DHTML).
  • DHTML Dynamic Hyper-Text Markup Language
  • Map Control window this viewing window is called the Map Control window.
  • the client software running on the user's machine keeps track of the data layers it is manipulating in a memory structure called a layer object.
  • Each layer object has information on where to find the locally cached image for that data layer.
  • the data layers currently being viewed by the user are represented in a list of layer objects. Although examples herein refer to "list" of layer objects, any structure may be used without departing from the scope of the invention.
  • the client software inserts one image tag into the Map Control window for each layer object in the list of layer objects. This prompts the browser to fetch the image for that data layer from cache and display it in the Map Control window. When more than one image tag is inserted into the Map Control window, the browser overlays the image in the order in which the image tags are inserted.
  • the client software manages the spatially referenced images for each data layer independently.
  • the individual spatially referenced images are cached in local memory by the client software.
  • the individual spatially referenced images are combined (e.g., overlaid using well-known overlaying techniques) by the client software based on user input to create a composite image for viewing by a user.
  • overlaying techniques used by the client software include DHTML in a browser and data overlaying techniques supported by computer programming languages such as Java, C/C++ and C#.
  • block 1412 it is determined whether the request is to remove a data layer from the displayed view. If so, processing continues to block 1440, otherwise, processing continues to block 1414.
  • the data layer is removed from the list of data layers being viewed (i.e., the "image" list) by removing the layer object for the data layer from the list of layer objects.
  • the spatially referenced images in the updated list of data layers being viewed are overlaid and displayed (e.g., by clearing the Map Control window and inserting new image tags for all the layer objects left in the list of layer objects). That is, when the user "turns off' a data layer, the client updates the list of layer objects to exclude this data layer from an image list.
  • the client software overlays the data layers in the list of data layers being viewed and displays the resulting overlaid composite image.
  • the client software is able to perform this processing without communicating with the server system.
  • block 1414 it is determined whether the request is to reorder data layers. If so, processing continues to block 1442, otherwise, processing continues to block 1416.
  • block 1442 the display order of the spatially referenced images associated with the data layers are set to match the user's request. The client software does this by reordering the layer objects in the list of layer objects for spatially referenced images being viewed. Then, processing continues to block 1444, and the spatially referenced images in the reordered image list are overlaid and displayed. This is accomplished by clearing the Map Control window and reinserting image tags into the Map Control window following the new order of image layers.
  • the client software requests the server system to generate spatially referenced images for each data layer being viewed by the user for which there are no spatially referenced images in cache.
  • the server system generates an individual spatially referenced images for each data layer and returns these as individual spatially referenced images to the client software.
  • the client software caches the spatially referenced images in memory.
  • the image list is updated in block 1424 with the new spatially referenced images returned from the server system. The client software does this by updating the layer objects in the list of layer objects.
  • the client software reorders the image list in block 1442, if needed, based on the order in which the user wishes to view the data layers.
  • the client software overlays the spatially referenced images in the desired order and displays the resulting overlaid image to the user by clearing the Map Control window and reinserting image tags for the images represented in the list of layer objects.
  • the client software in block 1428 will determine whether the spatially referenced image for the data layer is cached locally in memory at the client system. If so, processing continues to block 1436, otherwise, processing continues to block 1430.
  • the client software in block 1436 retrieves the spatially referenced image from local memory. Then, in block 1438, the client software updates the image list of images being viewed to include the cached spatially referenced image that has been requested by the user. The client software accomplishes this by adding the layer object for the new image layer to the list of layer objects representing the spatially referenced images being viewed. The client software reorders the image list in block 1442, if needed, and overlays the spatially referenced images in the image list and displays the overlaid image to the user (block 1444) by clearing the Map Control window and reinserting image tags for each of the layer objects in the layer objects 03 08296
  • the client software is able to perform this processing without communicating with the server system.
  • the client software sends a request to the server system in block 1430 to generate the spatially referenced image for that particular data layer.
  • the server system generates and returns the spatially referenced image.
  • the client software receives the spatially referenced image for the data layer
  • the client software caches the spatially referenced image to local memory in block 1434.
  • the client software updates the image list to include the newly "turned on” data layer in block 1438 by adding the layer object for the new image layer to the list of layer objects.
  • the client software reorders the image list in block 1442, if needed.
  • the spatially referenced images in the image list are overlaid and displayed to the user in block 1444 by clearing the Map Control window and reinserting image tags for each of the layer objects in the layer objects list.
  • the additional spatially referenced images are added to the image list in block 1438 as new spatially referenced images, the image list is reordered if needed in block 1442, and a new overlaid image is generated and displayed by the client software in block 1444.
  • implementations of the invention provide an efficient technique for updating spatially referenced images seen by the user of client software in a client server environment. Moreover, the time it takes to update the image layer seen by the user of the client software is minimized when the user updates the data layers currently being viewed, since the client software is able to perform the update in local memory at the client system. Also, an efficient technique for updating the spatially referenced images seen by the user of client software is provided, without the need for complex image generation software logic in the client software. [0121] When the user of the client software updates the data layers being viewed the client software performs the update locally at the client system. This minimizes server system data processing load. Additionally, the server system generates new spatially referenced images only for data layers for which a spatially referenced image was not previously created. This also reduces server system data processing load.
  • Implementations of the invention automatically process data (e.g., vector, raster, and tabular data) and automatically enable the processed data in a server system to be viewed spatially by client software.
  • Vector and raster data are updated to allow efficient access to the data in a client/server environment.
  • Location information in tabular data is used to dynamically generate and link spatial coordinate information, such as X/Y or Latitude/Longitude coordinates, to the tabular data. This allows the tabular data to be viewed spatially using the client software.
  • Metadata is dynamically generated based on business rules or instructions that define how the data should be presented in using the client software. Additional metadata is created based on access rules that restrict access to the data.
  • Conventional systems are unable to provide a real-time automated manner in which data can be acquired into a client server environment and make it viewable as spatially referenced data.
  • the process of making non-spatially and spatially referenced data available to a client for viewing in a spatial context includes, for example, automated data processing and automated activation of data for use by client software, in real time and without terminating client systems logged in to the server system.
  • Automated data preparation is the process of taking data and automatically transforming the data and/or adding to the data so that the data may be viewed spatially by a client system.
  • Automated activation of the data is the process of automatically, at the server system, making the newly prepared data available to the client system.
  • the data prepared by implementations of the invention is immediately available for the client software to use, without the need to restart any server applications or client software.
  • FIG. 15 illustrates a distributed computing environment 1500 in accordance with certain implementations of the invention.
  • the lines connecting components/blocks in FIG. 15 represent a particular flow to assist with understanding of the invention, but it is to be understood that datacommunications may flow in any P T/US03/08296
  • the distributed computing environment includes a retrieval system 1520, a transformation system 1540, a loading system 1550, a data store 1560, a metadata store 1570, and a server system 1530.
  • the transformation system 1540 includes a cleansing server 1542, a geocoding service 1544, metadata generation 1546, and rendering specification generation 1548.
  • Implementations of the invention allow users at client systems to view both data stored in data stores in the distributed computing environment 1500 (i.e., a type of ente ⁇ rise spatial system) as well as data stored in a customer's environment (e.g., their own server infrastructure).
  • Examples of data stored in a data store at the distributed computing environment 1500 include a data store table that contains data for roads in the country.
  • the distributed computing environment 1500 also makes data that is obtained from external applications available to its client systems.
  • One such example of this type of data is customer data for a company obtained from a Customer Relationship Management (CRM) system located in the customer's environment.
  • CRM Customer Relationship Management
  • Implementations of the invention make new data 1512 available to a client system through data preparation and use of metadata.
  • Data preparation refers to preparing the data for viewing spatially.
  • the data preparation process involves one or more of the following sub-processes: data retrieval 1520, data cleansing 1542, geocoding 1544, metadata generation 1546, rendering specification generation 1548, and data uploading 1550.
  • some of the sub-processes involved in data preparation may not need to be performed when new data is processed by the system. For example, if the data being made available to the clients is already spatially referenced, then geocoding 1544 is not performed on the data. Another example is the case in which the data being made available to the client is retrieved by the server system in real time when the client requests the data. In this scenario, the loading system 1550 is not needed. Unlike conventional systems, all the sub-processes for the data preparation process are performed automatically and, if needed, in real-time. 8296
  • Data retrieval 1520 is the process of gathering the data that needs to be presented to the client system.
  • Data retrieval 1520 gathers data from sources of data 1512 on a local system or from remote systems across a network 1580.
  • Data retrieval 1520 works with files, data stores, applications (e.g., CRM systems), and client software 1590 (e.g., browsers and standalone client software).
  • An example of data retrieved from a file is a company's inventory data in a file in Comma Separated Values (CSV) format.
  • CSV Comma Separated Values
  • the same information can also be retrieved from a data store across a network 1580.
  • An example of data retrieved from an application may be a company's customer information retrieved from a CRM system by interfacing with the APIs exposed by the CRM system.
  • Data retrieval 1520 works with client systems that allow users to enter data through client software 1590. For example, when a report of a fire is called in to a dispatch center for a fire department, personnel at the dispatch center may enter the location of the fire in real time using a web page. The data retrieval 1520 gathers the real time data and then automatically loads the data in real time into the data store (e.g.,1160) used by the server system 1530. Then, after data preparation is done, with implementations of the invention, client software 1590 is able to show the location of the fire in real time to the fire department so that they can respond to the fire immediately.
  • the data store e.g.,1160
  • Address cleansing 1542 and geocoding 1544 may also be performed in real time on the data, depending on the format in which the data is entered using the web page.
  • Address cleansing 1542 is the process of updating the address information associated with the data elements to correct inconsistencies in the data in order to accurately assign spatial coordinates to the data to be viewed spatially. For example, address cleansing 1542 corrects a misspelled name of a city in an address.
  • Geocoding 1544 is the process of generating spatial coordinates (e.g., latitude and longitude) that pinpoint a point on earth from location information and associate the point with data. Examples of location information include an address, cross streets, a landmark name (such as The White House), etc.
  • the process of geocoding 1544 will add spatial coordinates such as (X,Y) coordinates for each entry in a data set 1545.
  • metadata generation 1546 the metadata about the data that is being prepared is generated and stored in the metadata store 1570.
  • client software 1590 requests the server system 1530 to view data 1512
  • the server system 1530 uses metadata stored in a metadata store 1570 to locate, retrieve, and render the data for the client software 1590.
  • the metadata includes information, such as the name of the data layer as it will be presented in the client software 1590, the name of the data table in which data is stored, the location of the data store in which the table is located, security credentials required to access the table, information on how to render the data, etc.
  • the metadata mentioned above could alternatively be provided along with the data to be processed and presented to the user spatially, utilizing XML or other message or content descriptive formats.
  • the rendering specification generation 1548 generates a rendering specification, which describes how data should be presented to the client software 1590.
  • the server system 1530 uses the rendering specification to display a point that is red in color and 12 pixels wide on the display screen of the client system at each point at which a customer is located.
  • the rendering specification may be stored in the metadata store 1570.
  • Each set of data in the data store 1560 maybe associated 1572 with one or more rendering specifications in the metadata store 1570.
  • implementations of the invention show the same data in different forms to different client software, without creating multiple versions of the same data and storing the multiple versions.
  • the loading system 1550 loads prepared data into a data store (e.g., 1560) to be used by the server system 1530.
  • data is passed through the server system 1530 to the client software, without loading the data into data store 1560, via line 1525. For example, if a government or co ⁇ orate entity does not want their data stored in data store 1560, the data could be retrieved 1520 and passed to server system 1530 for transmission to client software 1590.
  • FIGs. 16A and 16B illustrate data preparation in accordance with certain implementations of the invention. Unlike conventional systems, implementations of the invention automate the data preparation process. FIGs. 16A and 16B describe some of the metadata elements created during automated data preparation. Implementations of the invention automate the data preparation process by using another set of metadata (not shown in FIGs. 16A or 16B) stored in the metadata store 1570 that describes the data preparation process for each individual set of data.
  • the client software 1600 When the requested data is displayed to the client software 1600, the requested data is not retrieved from a static table. Instead, the client software's 1600 view is a representation of the information that is being displayed from multiple data sources dynamically. These individual and multiple data sources include, but are not limited to, business data 1613b and spatial coordinates 1645b from separate tables within the spatial data store 1660, as well as, rendering specifications derived from business rules stored in metadata store 1670. Metadata is used to link these multiple tables together dynamically. [0136] In certain implementations, specific software modules perform sub-processes for the data preparation process, and a master software process coordinates the actions of these individual software modules by using metadata in metadata store 1670 to decide which software modules are to be activated to perform the data preparation.
  • the metadata may indicate whether the data includes coordinates, and, therefore, geocoding is not necessary.
  • the metadata also provides information needed by the individual software modules. For example, a piece of information that the loading system 1550 needs is the name of the table into which the data should be loaded, and this data is provided by the metadata 1673.
  • the metadata also has elements that describe the status and results of each one of the sub-processes of the data preparation process that are performed.
  • the metadata also has data validation procedures that are performed for each sub-process for the data preparation process. The master software process initiates the validation as specified in the metadata.
  • customer data (e.g., 1613a) is uploaded 1620 and stored in spatial data store 1660 as business data 1613b.
  • the data is cleansed 1642 and geocoded 1644.
  • the geocoding adds coordinates to data elements (e.g., records) as illustrated by spatial coordinate table 1645a, and coordinates 1645b are stored in the spatial data store 1660.
  • the business data 1613b and coordinates 1645b are used to create a spatially referenced data layer view 1690.
  • Metadata is created 1646 and stored in metadata store 1670.
  • FIG. 16B this metadata 1672b is used by client software 1600 to display data.
  • metadata and spatial tables are dynamically linked 1680.
  • the layer view may be transmitted over a network to client software 1600 and displayed by client software 1600 in FIG. 16B.
  • FIG. 16 B illustrates that client software 1600 receives data sent via, for example, from spatial data store 1660 and metadata store 1670.
  • Data 1613b, 1645b, and 1672b each represent one or more data layers.
  • FIG. 17 illustrates logic for data preparation and activation in accordance with certain implementations of the invention. For one line of logic, control begins at block 1710 with the server system creating data processing automation instructions in the metadata store 1670.
  • Data processing automation instructions are specific directives that a component in the data preparation system understands, and each directive contains all the information that the component needs to perform a specific data preparation process.
  • An example of a data processing automation instruction is an instruction to generate latitudes/longitudes for each data record in a data set from address information in a specific field in the data records.
  • the server system retrieves the data processmg automation instructions from the metadata store 1670.
  • Blocks 1714-1754 represent processing performed automatically based on the data processing automation instructions executed by, for example, a master software process, without user or administrator intervention.
  • an automated process determines the source locations of source data (e.g., application datasets) from the data processing automation instructions.
  • the automated process determines whether the source data is to be stored at the server system based on the data processing automation instructions. If so, processing continues to block 1718, otherwise, processing continues to block 1740. That is, if the source data is to reside on the server system, then the data is retrieved from the current data source (block P T/US03/08296
  • block 1720 it is determined whether the data is spatially referenced. If so, processing continues to block 1736, otherwise, processing continues to block 1722. In block 1722, it is determined whether the data needs geocoding. If so, processing continues to block 1724, otherwise, processing continues to block 1736. In block 1724, it is determined whether the data needs address cleansing. If so, processing continues to block 1732, otherwise, processing continues to block 1726. In block 1732, address cleansing is performed, and in block 1734, the metadata store 1270 is updated with an address cleansing result status.
  • geocoding is performed.
  • spatial coordinates created by the geocoding process are stored in the server system data store.
  • the metadata store 1270 is updated with a geocoding result status.
  • data is loaded into a data store, if needed.
  • the metadata store 1270 is updated with a load result status.
  • data layer metadata may need to be updated to reflect the results of the cleansing, geocoding, and data store processes.
  • block 1740 it is determined whether the data layer metadata needs to be created or updated. If so, processing continues to block 1744, otherwise, processing continues to block 1752.
  • metadata is generated for data to be used by the server system provided by implementations of the invention at run time.
  • rendering specification metadata is generated from business rules or data processing automation instructions.
  • access control metadata is created based on business rules.
  • access is granted to users. In particular, as will be discussed in further detail below, a data layer definition metadata table and a users metadata table are maintained, and access is granted by associating a data layer definition metadata table entry with a users metadata table entry.
  • block 1752 it is determined whether client software at one or more client systems should be notified about new data. If so, processing continues to block 1754, otherwise, processing ends. In block 1754, client software at one or more client 8296
  • Implementations of the invention also provide automated activation of new data.
  • each set of related data in the server system such as client locations, roads, rivers etc.
  • Each new set of data prepared by implementations of the invention is made available to the client software as a new data layer.
  • Each data layer seen by the client software has a corresponding data layer representation in the metadata store 1270 in the server system.
  • the metadata associates each data layer representation with a set of roles or users who can view the data in the data layer.
  • the client software is notified by the server system which data layers the user can view based on the data layer representation associations in the metadata. Based on user actions, the client software can request spatial views of any or all of these data layers. The client software will not view and hence cannot request any data from a server data layer representation that is not associated with the user.
  • blocks 1744-1748 at the completion of the automated data preparation process for data (i.e., a new data set), all metadata has been created in the metadata store. At this point, the data has a data layer representation in the metadata. However, none of the current users can view the data since the data layer representation for the data is not associated with any of the users of the system.
  • the users can be associated with the data layer representation in one of two ways. First, a software process can be run that takes a predefined user access list, such as a file with user names, and associates each one of these users with the data layer representation in the metadata.
  • an interactive application e.g., a server based application or client software, such as a browser application
  • client software such as a browser application
  • the server system will automatically look for all metadata data layer representations that are associated with the user and make them available for viewing by the user. Once the actions in block 1750 have been done, the server system will find the new data layer representation associated with one or more users who are allowed to see that data layer representation, and the 03 08296
  • control begins at block 1742 and data is entered by a user in client software or real time data is automatically generated.
  • the data being spatially viewed may be updated real-time in a batch process or based on input from a user entering data into client software, by a client software generating data as part of its processing, by a sensor device (such as a smoke detector) generating data or by a location sensing device (such as a GPS enabled device) generating data.
  • a sensor device such as a smoke detector
  • a location sensing device such as a GPS enabled device
  • the server system will have a special software flag that will indicate whether there is new data in the server system. This software flag is turned on when there is new data. When a client software request reaches the server system, this flag is checked and, if the flag is turned on, the client software is told that there is new data available. The client software can then retrieve the data and view the data without having to restart the client session. If the client system is already connected to the server system using a communication protocol that allows the server system to initiate interactions with the client system, the server system will notify the client system that there is new data available.
  • implementations of the invention allow real time update of data sets already being used by client systems.
  • New data can be added to or deleted from the data set.
  • the client systems will automatically view changes to the data sets when they refresh their displayed data view, if they have access rights to the data.
  • original data is left intact while being associated with spatial coordinate information to enable the data to be visualized spatially.
  • the original data may still be processed by existing software.
  • the data may be visualized spatially, while allowing existing software currently using the original data to continue to operate correctly.
  • the data may be visualized spatially, while keeping the data and the associated coordinate information in separate data sets, and, if needed, in separate data stores.
  • a server system is able to retrieve and present data residing in a remote location to client software that views spatial data as though the data is residing in a local data store.
  • Non-spatially referenced data may be associated with pre-existing spatially referenced data to allow new spatial data presentations to the same data set. Additionally, this association is performed dynamically, and the data need not be moved or transferred from its original locations.
  • Client software may perform spatial analysis and make business decisions by using spatial presentation of currently existing non-spatially referenced data in an automated manner. The process of retrieving, cleansing, geocoding, loading and making the data available to client software in a client server environment is automated.
  • Data being spatially viewed by client software in a client server environment may be updated real-time without any interruptions to the server and client software.
  • the data being spatially viewed may be updated real-time in a batch process or based on input from a user entering data into a software user interface, by software generating data as part of its processing, by a sensor device (such as a smoke detector) generating data or by a location sensing device (such as a GPS enabled device) generating data.
  • a sensor device such as a smoke detector
  • a location sensing device such as a GPS enabled device
  • the term software abstraction level refers to making the data set look like a simple data layer with all the data residing in a local data store, while in fact the data may be acquired real time from some other location (i.e., other than the local data store).
  • the software abstraction level is used to allow the server system to acquire and process data present in different formats and in different locations without changing the client software and without changing the core server application.
  • Implementations of the invention provide access to spatially referenced data at a data set level or at an individual data element level within the data set. Users can be granted access to (e.g., visually see) or be denied access to entire sets of data. Access can be further restricted to allow users to view only particular subsets of data within a data set. This is done through metadata definitions that are independent of the technology used to store the spatially referenced data.
  • FIG. 18 illustrates metadata stored in metadata store 1570 (FIG. 15) for use in controlling access to data in accordance with certain implementations of the invention.
  • Metadata is stored in metadata store 1570 for all resources managed and made available to client systems.
  • the resources include, for example, data and application functions.
  • Data is seen by the client software 1590 as data layers in the UI screen. Each data layer presented to the client software 1590 has a corresponding metadata definition in a table, labeled layer definition table 1872 in metadata store 1570.
  • Each application function presented to the user through the client software 1590 has a metadata definition in another metadata table labeled application definition table
  • the invention system also maintains information about the users, such as login name, first name, last name, etc., in yet another table, labeled user table 1876.
  • client software 1590 requests access to a resource (e.g., data or an application function)
  • the server system 1530 accesses this resource using the appropriate metadata table. For example, when the chent software 1590 wants to view the data for a data layer (e.g., by selecting the data layer for viewing via a UI screen), the server system 1530 finds the metadata definition for this data layer in the layer definition table 1872.
  • the resource is a data layer
  • the data layer has a layer identifier ("Layer ID"), such as 20, and the server system uses the layer identifier to find the entry associated with the requested data layer.
  • Layer ID layer identifier
  • the server system 1530 uses the information contained in the metadata definition for the data layer to access the data store 1560 (using the data store user name), retrieve the data 1520, transform the data 1540, and present the data to the client software 1590. Implementations of the invention do not allow resources to be accessed if the resources are not represented in the appropriate metadata tables.
  • Implementations of the invention also maintain access control lists (commonly referred to as ACLs) for each of the resources represented in the metadata tables.
  • the access control list for a given resource is a list of users who can access the resource.
  • Each resource is associated with a list of users, and this association is maintained in a new table, labeled resource ACL table 1878.
  • the server system 1530 Whenever client software 1590 requests access to a resource, the server system 1530 first checks whether the resource is associated with the user by searching the resource ACL Table 1878. If the server system 1530 finds the association, the server system 1530 allows access to the resource. Otherwise, the server system 1530 rejects the request from the client software 1590.
  • Implementations of the invention also associate data filters with each entry in the layer definition table 1872.
  • a data filter is an assertion that should be valid for all data that is retrieved using that metadata definition.
  • the client software 1590 is allowed to access only data for which the assertion is valid. Take for example data that contains customer information for a company.
  • the term “Region” in this filter refers to a data element, such as a column name in the data.
  • the term "West Coast” in this filter is the desired column value.
  • the server system 1530 retrieves a subset of the data that has the value "West Coast” in the region column. Even though the data contains customer information for all regions, the user who accesses this data will only view the west coast region data, since the data is restricted by the data filter associated with the metadata.
  • Additional metadata entries may be created in the layer definition table 1872 for the same data set.
  • multiple metadata entries can be created for the same data, each with a different data filter. Then, by granting access to the different metadata entries to different users, different users can be privileged or restricted to view different subsets of the same data.
  • Each user has a unique metadata entry in the user table 1876.
  • Associated with each entry in the layer definition table 1872 is a set of credentials used to access the data within the data store 1560, which may be referred to as "access credentials.”
  • the access credentials are used to access the data. If the data is stored in a data store 1560, the access credentials may include, for example, the user name and password.
  • a data set (e.g., a customer data table) in the data store 1560 may be associated with more than one metadata entry in the layer definition table 1872. For example, there may be two entries in the layer definition table 1872 for the customer data table. The first entry may be associated with data store user name DB USER A for client A, and the second entry may be associated with data store user name DB USER B for client B.
  • the data store user names are used to access the data store 1560 in which data, such as the customer data table, resides. Then, the access rules enforced by the data store technology itself may be used to view different data elements within the same data set (e.g., customer data table).
  • client A would be granted access to the first entry in the layer definition table 1872
  • client B would be granted access to the second entry in the layer definition table for the customer data table.
  • Client A and client B will access different sets of data, since the server system 1530 will access the back end data store 1560 with data store user name DBUSER A for client A and data store user name DBUSER B for client B.
  • FIG. 19 illustrates logic when a client request to view information as data arrives at the server system in accordance with certain implementations of the invention.
  • Control begins at block 1910 with receipt of a request from client software for data at the server system. The request references a data layer that contains desired data.
  • the server system accesses the metadata store and finds an entry in a layer definition table 1872 (FIG. 18) for the requested data layer, which is referred to as a "layer definition table entry.”
  • the server system accesses the metadata store and finds an entry in a user table 1876 (FIG.
  • the server system accesses the resource ACL table 1878 (FIG. 18) in the metadata store and performs a query to determine whether the current user has access to the requested data layer. If the current user should not have access to the requested data layer, then processmg continues to block 1932, otherwise, processing continues to block 1918. In block 1932, the server system notifies the client software that the data request will not be fulfilled and the process ends.
  • the server system retrieves the data store user name from the layer definition table entry associated with the requested data layer and connects to the data store using the data store user name (block 1920).
  • the server system determines whether the layer definition table entry has a data filter (i.e., whether the layer definition table includes an entry in the data filter column). If so, processing continues to block 1936, otherwise, processing continues to block 1924.
  • data is read from the data store using a data store query. If there is a data filter, the data filter is retrieved from the layer definition table entry (block 1936), and data is read from the data store using a data store query, with the data filter being applied to the data store query to retrieve the requested data layer block 1938.
  • the rendering specification is retrieved from the layer definition table entry.
  • the data is rendered using the rendering specification (block 1928), and the rendered data is sent to the client software (blocks 1930).
  • Implementations of the invention provide various administration tools for users to create different organizations, roles and access rights for each data layer and defined area.
  • Each layer or defined area has an associated resource identification value. This resource identification value is associated with a role (e.g., a role in a company, such as manager or administrator) .
  • FIG. 20 illustrates a user hierarchy in accordance with certain implementations of the invention.
  • a user hierarchy is used to administer user access to data, application functions, and other resources.
  • the information in FIG. 20 is used to show the relationship between the various entities in a company and their relationships.
  • the system e.g., the ente ⁇ rise spatial system
  • the system 2002 has one or more companies 2004. Each company has one or more users 2006. Each user has one or more roles 2008. Users may be specified using the user's name and associated demographic information. For example, one user may be specified with: Joe Brown, 13834 Sunshine Drive. Then, each user is assigned a role 2008 that exists within the company 2004. Roles include, for example, manager, administrator, advisor, or technician. [0177] Each role has access to one or more application services 2010 and one or more data layers 2014. Each application service is a collection of distinct features 2012 that perform particular functions.
  • Data layers 2014 have subsets of data 2018 and areas of interest (i.e., viewable extents) 2016, which are subsets of data based on a particular area being viewed.
  • the data layers 2014 form a category of data that is resident in a system 2002 data store.
  • data layers 2014 may include census 2000 data.
  • An area of interest 2016 may be, for example, a regional area of the globe (e.g., United States North West, United States South West, etc.).
  • a subset of data 2018 represents a subset of a data layer 2014 (i.e., data layers 2014 maybe broken into subsets using filtering techniques).
  • the subsets of data are given identifiers (e.g., names) so that access can be assigned to roles and users.
  • implementations of the invention allow users to view spatially only those data sets to which they have been granted access. Users may be grouped into groups and then further sub-grouped under roles within the groups. Jh this context, users are granted different access rights based on the group to which they belong and the role that they are assigned within the group. Access to data is granted to users based on metadata that is independent of the data store technology used to store data. Access to data and applications is controlled in a manner in which the access control mechanism is independent of the data store location storage format used by the data store and storage technology used to implement the data store. [0180] A software abstraction level is created using metadata for the data and the application functions that work with this data. Access is granted to data and applications by granting access to the abstract entities in metadata.
  • data and applications can be accessed by the server system for the client software when the user has been granted access to the abstract entities for these in metadata.
  • data filters are attached to the abstract metadata entities to filter out subsets of the data accessed by the server system using that particular abstract entity. More than one abstract entity maybe created in metadata for the same data set in the data store, without creating multiple copies of the data set. Then, different data filters may be attached to the different abstract entities to allow different users to view different subsets of the data based on which abstraction entity they use to access the data. [0181] Different data store access credentials may be associated with different abstract metadata entities for the same data set, and, thus, the data seen by the user may be filtered using the data filtering abilities supported by the data store technology.
  • the data accessed by users may be filtered on a per user basis based on the properties of the user.
  • the data filtering techniques provided by implementations of the invention may be used one at a time or simultaneously in any combinations of data filters.
  • the access credentials used by the user to access the spatial server system may be detached from the access credentials used to access the data store.
  • the spatial server system may use different access credentials to access different data sets on behalf of the same user.
  • the spatial server system may use the same access credentials to access a data set on behalf of different users.
  • Implementations of the invention display spatially referenced data (e.g., images) to client software, by automatically choosing one of several data sets containing spatially referenced data corresponding to the scale at which the user requests to view the spatially referenced data.
  • the data sets contain spatially referenced data, at varying scales and varying levels of detail for the same viewing area of interest.
  • Implementations of the invention provide an application server tier that includes access control and map content configuration management components to handle customized secure access to data.
  • the server system obtains user information to generate a list of different data layers and regions that a user may access based on the user's role information and access controls. Then, the server system returns this list to the client software.
  • the client software uses the data layer information provided by the server system, the client software creates layer control options and different data layer representations for a user. When a user tries to use panning features to expand the area of certain layers, a user's actions are limited by the access controls.
  • FIG. 21 illustrates a single data layer presentation that is provided for a single pyramided spatially referenced data set in accordance with certain implementations of the invention.
  • a user selects a single data layer (block 2112) to view via, for example, a UI screen provided by client software 2110.
  • a request for the data layer is sent to the server system 2120 via a network.
  • the appropriate data table to use for the request is automatically determined (block 2132) using metadata logic and metadata 2140.
  • the data store 2150 is accessed, data layers (e.g., image layers) are generated, and the data layers (e.g., image layers) are returned to the client software 2110 (block 2134).
  • the spatial data store 2150 and metadata logic and metadata store 2140 are part of a data store system 2130.
  • FIG. 22 illustrates a metadata store 2217, a spatial data store 2218, a business data store 2219, and relationships among the data stores 2217, 2218, 2219 in accordance with certain implementations of the invention.
  • FIG. 22 illustrates some tables, although the data stores 2217, 2218, 2219 may store many tables. For ease of understanding, only a subset of the columns in the tables are shown.
  • a software abstraction level separates the data layers, as the data layers are presented to the user with the client software, from the data set or data sets that contain the data. The software abstraction level is created using metadata stored in a set of data store tables. In particular, for each data layer viewed by the client software, there is a corresponding entry in a layer definition table 2225.
  • the layer pyramid table 2226 contains the name of the data table that contains data, along with the minimum and maximum zoom scales at which the user is allowed to view the data. In certain implementations, there is one layer pyramid table for each entry in the layer definition table.
  • the layer definition table 2225 also may have entries for business tables 2230 and 2231. These tables may also have an entry in the layer pyramid table, even though the business data may not be stored as a pyramid in the data store.
  • the layer pyramid table entries for business tables 2230 and 2231 are not shown in the layer pyramid table 2226. [0189] Each entry in the layer definition table 2225 is associated with one or more entries in the layer pyramid table.
  • the "Roads" data layer represented in the layer definition table 2225 is associated with three entries in the layer pyramid table 2226.
  • the layer definition table 2225 and the layer pyramid table 2226 each have a layer identifier ("Layer ID") column for use in creating the associations.
  • the three entries in the layer pyramid table in turn point at the three tables 2227, 2228, 2229, respectively, that contain the spatially referenced data for the "Roads" data layer.
  • the layer pyramid table 2226 also contains MinScale and MaxScale columns.
  • the MinScale column indicates the minimum zoom level at which the data corresponding to this entry in the pyramid table can be viewed.
  • the MaxScale column indicates the maximum zoom level which the data corresponding this entry in the pyramid table can be viewed.
  • the first entry in the layer pyramid table 2226 can be viewed from zoom scale levels 100 to 10,000; the second entry can be viewed from zoom scales 10,001 to 100,000; and, the third entry can be viewed from zoom scales of 100,001 to 10,000,000,000. Since all these entries in the layer pyramid table 2226 are linked together by the value 10 in the Layer ID column, these three entries represent a pyramid with three levels for Layer ID 10.
  • the Layer ID of 10 corresponds to the "Roads" entry in the layer definition table 2225.
  • FIG. 22 illustrates a pyramid in which data is stored in data store tables in a single spatial data store 2218.
  • the use of metadata allows the creation of pyramids with any form of data store, including pyramids in which the data for some levels in the pyramid is provided by an application external to the ente ⁇ rise spatial system.
  • pyramids may be made of different data sets, and the data sets may be physically located in different locations and in different data formats.
  • the user is presented with one data layer via the UI screen for a pyramided data layer. For the example shown in FIG.
  • the server system uses the layer definition table 2225 and the layer pyramid table 2226 to automatically determine which data store table among the three for the "Roads" data should be used to satisfy the zoom request.
  • the logic performed by the server system to automatically choose the data set from a pyramid is described below with reference to FIGs. 23 and 24.
  • each entry in the layer pyramid table 2226 may be associated with rendering specifications. This allows for different presentations for the data at different levels in the pyramid to be automatically created.
  • each entry in the layer pyramid table 2226 can also be associated with a data filter. The data filter is applied to all data retrieved at that pyramid level to filter out subsets of the data in the data set.
  • FIG. 23 illustrates logic for processing a client request to view data in accordance with certain implementations of the invention.
  • Control begins at block 2310 with the server system receiving a request from client software to view particular infonnation (e.g., an image of roads).
  • infonnation e.g., an image of roads.
  • the server system determines whether the request is for an image. If so, processing continues to block 2314, otherwise, this processing is complete and other processing occurs.
  • the server system processes the request and sends the request to a service aggregator.
  • a layer identifier is retrieved from the request. The layer identifier may be used to access data in the layer definition table 2225 and the layer pyramid table 2226.
  • the server system determines the viewing extent of the requested image based on information received from the client software in the request (block 2318). Then, in block 2320, the server system calculates the zoom scale at which to display the image. The layer identifier and the zoom scale are used to access an entry in the layer pyramid table 2226, then, the appropriate data store table associated with the accessed entry is retrieved from the spatial data store 2218 (block 2322). As an example, when the user requests to view the roads data layer, the server system automatically determines whether to use LD_Roads_l table 2228, LD_Roads_2 table 2229 or LD_Roads_3 table 2227 to generate the image for the client request. Once the appropriate data store table is determined, that data store table name and image T U 03/08296
  • viewing extent are sent to an image generator component of a map server to create the image (block 2324). Then, the server system returns the image to the client software for display (block 2326).
  • FIG. 24 illustrates logic performed by the service aggregator for the interaction of metadata tables to identify the information to be sent in response to a request for a data layer.
  • Control begins at block 2410 with a determination of whether the layer identifier is present in the layer definition table. If so, processing continues to block 2412, otherwise, this processing terminates. That is, when the request from the client software is being processed, an attempt is made to locate the layer identifier within the layer definition table 2225 in metadata store 2217.
  • a first entry is retrieved from the layer pyramid table 2226 for the requested data layer.
  • the data set name and data store location of data are retrieved from the entry. For example, based on the determined scale, an associated data store table name is identified, which in turn determines which Roads table 2227, 2228, or 2229 to use from the spatial data store 2218 (e.g., highways only or highways and streets).
  • the data set name and data store location information are retrieved from the layer pyramid table 2226.
  • a single data layer representation is provided in the client user interface for a pyramided spatially referenced data set that is stored in the server as a pyramid with different data sets at different levels in the pyramid.
  • the server system automatically determines the appropriate level in the pyramid to use to respond to a client software request to view a data layer. Once the appropriate pyramid level is determined, the server system automatically finds the data set in the data store and retrieves the data to be viewed spatially.
  • Pyramids for any spatially referenced data format are created, rather than just raster data as is usually done in conventional systems. Pyramids can be created in which the data for the different levels in the pyramid is located in physically different locations. Pyramids can be created in which the data for different levels in the pyramid may be in different formats.
  • FIG. 25 illustrates logic for printing multiple data layers in accordance with certain implementations of the invention.
  • Control begins at block 2510 with the client software receiving a user request to print a composite image that is formed by overlaying multiple data layers.
  • the client software receives the print request.
  • the client software sends the print request to the server system.
  • the server system receives and processes the print request by gathering all of the requested data layers and combining the multiple data layers as one printable file. Then, in block 2516, the server system sends the combined printable file to the client software to print.
  • the client software receives and prints the printable file.
  • the client software and the server system perform logic similar to the logic used for processing a Print menu selection, but lower resolution data may be used to achieve faster performance, and rather than printing a printable file, the client software displays the printable file.
  • the client software and the server system support printing multiple data layers as one printable file.
  • FIG. 26 illustrates logic for order fulfillment in accordance with certain implementations of the invention.
  • the logic illustrated in FIG. 26 will be described with reference to FIG. 7.
  • control begins at block 2610 with the fulfillment center 730 receiving an order for data, such as a map or satellite image.
  • a catalog of previous versions of GIS data is maintained at the data center 720, and users are given the option to choose among the various versions listed in the catalog when requesting data from the fulfillment center.
  • the fulfillment center 730 prepares the requested data (e.g., creates or collects the appropriate data layers.
  • the fulfillment center 730 delivers the prepared data to a requested location.
  • orders can be delivered in many different forms, such as tape, CD-ROM, or using File Transfer Protocol (FTP).
  • FTP File Transfer Protocol
  • Orders that cannot be processed directly by the data center 720 will be sent to the fulfillment center 730.
  • orders that require special GIS processing at the GIS processing center 714 or those that require the transfer of large amounts of data are sent from the data center 720 to the fulfillment center 730.
  • a master archive tape library 723 contains all versions of the GIS data, the order fulfillment process is used to retrieve and fulfill the order for an earlier version of GIS data (e.g., original source data).
  • solutions provided and services permitted by implementations of the invention reflect a new generation of ente ⁇ rise decision support services that leverage and integrate the global IT ente ⁇ rise computing investment, ubiquitous computing capability, and SIM.
  • solutions provided by implementations of the invention generate actionable knowledge, which is knowledge that will enable decision makers within a wide array of public and private entities to explain events, share knowledge, predict outcomes, plan strategies, and make more informed decisions.
  • the unique approach disclosed and claimed herein provides an easy to use, one-stop solution, built on data (e.g., integrated GIS imagery) and tools coupled with interactive easy-to-use mapping applications and up to and including 24/7 service delivery, and offers greater productivity and efficiencies than ever before. Furthermore, implementations of the invention provide the freedom to collaborate and share information in a secure online environment.
  • the services provided via the server system may be accessed by users who have an account at the server system.
  • the services include, for example, access to data layers generated with ente ⁇ rise data and/or third party data that is in the form of raster data, vector data, or tabular data. Additionally, one of the services provided is the ability to purchase data through the fulfillment order process.
  • Control begins at block 2710 with an individual user or a representative of a company creating an account with payment infonnation in the ente ⁇ rise spatial system.
  • a user or representative of a company at a client system uses a UI screen provided by client software to log onto a website supported by the server system.
  • the client system may be connected to the server system, via, for example, a network, such as the Internet.
  • information such as first name, last name, and billing information, may be provided.
  • the billing information may include, for example, a credit card type and number (e.g., for an individual) or a billing address to which invoices should be sent (e.g., for a company). Additional information provided would indicate the number of uses who would use the account. The number of users may impact the cost of using the services provided via the server system. For example, if a company wants to give 100 users access to the services provided via the server system, the cost may be less than if the company wanted to give 1000 user access to the services. Also, the account would specify whether charges should be based on individual accesses (e.g., a charge per access to the server system), based on an hourly rate for accesses, or based on a monthly, unlimited use charge.
  • individual accesses e.g., a charge per access to the server system
  • a password may be set up for the account to be used by the server system to provide login verification.
  • a user may access the website supported by the server system and log into the server system, and the server system performs login verification procedures to ensure that the user may log in (e.g., by requesting a password from the user).
  • the user is automatically logged into the server system. Then, the user may use the services provided by the server system, including viewing data and purchasing data.
  • a "shopping cart” feature is available to enable user's to store data that is to be purchased while “shopping” for additional data or using other services.
  • the server system responds to the user's requests for services and tracks usage (block 2714). While tracking usage, the server system may collect information about a particular user that may be stored in a user profile for the user, along with demographic (e.g., address) and other information.
  • demographic e.g., address
  • the server system calculates charges for the usage (block 2716). For example, if the account indicates that users are to be charged based on an hourly rate, the charges would be calculated based on how long the user accessed the services. If the account has a monthly, unlimited use charge, then the calculations are not needed. Then, the account may be updated with the charges, and the customer is billed via one or more selected payment techniques (block 2718). For example, the charges may be billed for each usage or periodically (e.g., monthly), or some combination of these depending on the services used.
  • users may subscribe to ente ⁇ rise spatial system information services (e.g., on a monthly basis or per usage or per hour) and receive data and/or applications via, for example, the Internet.
  • various e-commerce related transactions are supported by the server system, such as purchase order handling, shopping cart management, billing, user profile and account management.
  • Implementations of the invention allow the dynamic interaction and integration of spatial data with a third party system.
  • a technique is provided to handoff spatial data and commands to a third party system. Additionally, information may be received back from the third party system for interacting with client software and updating spatial data.
  • a technique is provided for receiving spatial and tabular updates from a handoff to a third party system using an interface technique, such as Web Services (which is a standard, flexible connection technique to allow communication between disparate computer systems using Internet or similar network connection to transfer information and maybe used to send XML messages).
  • Web Services which is a standard, flexible connection technique to allow communication between disparate computer systems using Internet or similar network connection to transfer information and maybe used to send XML messages.
  • the ente ⁇ rise spatial system may provide a spatial editor for modifying editable data elements (e.g., graphical objects or tabular data, etc.), while the third party system may implement business rules for validating the editable data elements.
  • the ente ⁇ rise spatial system of the invention may operate without any interaction with a third party system, in certain implementations, the ente ⁇ rise spatial system may be used with a third party system to allow the third party system to benefit from the spatial processing provided by the ente ⁇ rise spatial system.
  • the third party system may interact with and be an extension to the client software.
  • the interaction with a third party system is performed by a client software "handoff during operations supported by the third party system.
  • the term "handoff” refers to an information packet that contains a command and various additional parameters and information, along with a description of a technique for returning control back to the client software.
  • the handoff may be performed using a secure communications mode (e.g., HTTPS, SSL, or other secure communications) between the third party system and the client system to protect the information and integrity of both the third party system and the client system.
  • a secure communications mode e.g., HTTPS, SSL, or other secure communications
  • ente ⁇ rise spatial system 2850 interfacing with a third party system 2820 in accordance with certain implementations of the invention.
  • Client software 2805 at a client system connects to ente ⁇ rise spatial system 2850 through a network 2810 (e.g., the Internet).
  • An optional front-end portal 2845 maybe used for authentication, access control, and other system services.
  • the ente ⁇ rise spatial system 2850 includes Web server 2855, application server 2860, map server 2865, and LDAP server 2870.
  • client software 2805 redirects data to the third party system 2820 through the network 2810.
  • the third party system 2820 includes Web server 2825, application server 2830, and data store server 2835.
  • third party system 2820 wishes to update spatial and tabular information using a Web services connection or other backend systems communication, then the third party system 2820 sends updates using APIs along Web services connection 2840 to Web services of Web server 2855.
  • Web Services is shown in FIG. 28, any other API or protocol that supports communication between two computer systems across the network may be used.
  • the network may be an internet or intranet.
  • client software 2805 may be used to edit data (e.g., an image or tabular data). Then, the edited data may be passed to the third party system 2820 from the client software 2805 for validation of data, further edits, etc.
  • the third party system 2820 can perform functions on the data, and return the data (possibly modified) to the client software 2805.
  • the spatial editor allows a user to quickly and easily edit complicated editable data elements from a server system at the ente ⁇ rise spatial system using client software (e.g., browser, software application, etc). Further details of the processing performed by the spatial editor will be discussed below.
  • client software e.g., browser, software application, etc.
  • the shape of an editable data element represents real world objects, such as the boundary of a piece of land. Changes to the editable data element may have business implications and rules to be addressed. Therefore, rather than directly updating the server system in the ente ⁇ rise spatial system with spatial data, the spatial editor may send the edited spatial data to the third party system.
  • the third party system may perform calculations or checks based upon the editable data element and what the editable data element represents in the third party system. Calculations include, for example, updating the area of a polygon editable data element in acres or square feet and valuation or quantity estimates based upon the new editable data element and any necessary and appropriate calculations.
  • the third party system may make modifications to the editable data element to meet certain rules. For example, two or more shapes may be modified so that at least one shape overlaps at least another shape (i.e., the shapes overlap) and other editable data element boundaries may be modified (e.g., stretched). Limits on certain spatial features, such as width of roads or offsets from certain boundaries, may also be applied.
  • the third party system may send other pages (e.g., pages indicating that information input into fields in a previous page on the display screen are incorrect) to the client software to display to the user or may send status (e.g., a requested operation is not allowed or to request additional information) to a user.
  • different functionality may be performed at the third party system (e.g., the third party system calculates data based on tabular data stored at the third party system) that generates additional data.
  • the third party system may return the generated data to the client software for display to the user. Since the user is not aware that processing is performed by the third party system, rather than the client software, the functionality of the third party system appears to be integrated with the client software at the client system.
  • the third party system may update the spatial data through a backend interface (e.g., using various protocols, such as Web Services) at the ente ⁇ rise spatial system. After the updated data is stored at the spatial data store of the ente ⁇ rise spatial system, the third party system may send a handback to the client software indicating that the client software should refresh data. The client software may then refresh data from the updated spatial data store. [0225] The third party system may maintain proprietary data that is associated with spatial data in the third party system and deliver this to users through the client software at the client system, without having to host the proprietary data in an outside environment (e.g., the ente ⁇ rise spatial system).
  • a backend interface e.g., using various protocols, such as Web Services
  • the third party system may maintain additional information about each editable data element stored in the ente ⁇ rise spatial system data store.
  • the objects in the ente ⁇ rise spatial system data store and the corresponding objects in the third party system data store may be correlated using an identifying key called Alternate Key ID (AKJD).
  • AKJD Alternate Key ID
  • the use of AKID allows the related data in the two data stores to be synchronized.
  • the use of AKID allows third party systems to maintain proprietary information that can interact with the spatial data stored at the ente ⁇ rise spatial system and be provided to the user without submitting this information to the ente ⁇ rise spatial system.
  • the third party system can also apply secret and proprietary processes to spatial data or the tabular data associated with spatial data, without revealing the processes or hosting them in an outside environment (e.g., the ente ⁇ rise spatial system), while the proprietary operations and processes appear to happen seamlessly, and the user does not know that there are two environments.
  • an outside environment e.g., the ente ⁇ rise spatial system
  • Implementations of the invention enable client software and/or an ente ⁇ rise spatial system to accept back changes to a set of spatial references and modify the display or other spatial parameters. That is, after the client handoff, there may be a client handback that returns control from the third party system to the client software. Embedded in the original handoff is a retum location so that the client software can handoff to physically or logically different platforms and still receive the handback.
  • the third party system uses the retum location, like a return address used in mail, to return control back through the handback mechanism.
  • the handback contains, for example, status information, editable data element changes or creations, and/or other information.
  • Implementations of the invention provide the ability to provide commands (e.g., the handoff may include commands, such as merge data) to a third party system with references to the associated spatial data. Also, implementations of the invention provide the ability to provide spatial editable data element information and spatial change information to a third party system.
  • the client software may arrive at a set of spatial references to pass to the third party system by performing spatial queries to the server system at the ente ⁇ rise spatial system before the handoff is performed.
  • a third party system may perform additional queries or qualifications off of a data set (e.g., spatial, tabular or both) passed to it in a handoff from the client software .
  • the third party system may use additional data sets aheady residing at the third party system while performing such additional queries or qualifications of the data.
  • the third party system may send the qualified data back to the client software through the handback, allowing the client software to update the view of the data seen by the user.
  • the ente ⁇ rise spatial system is able to accept commands to change spatial data sets, such as Insert, Update and Delete through a backend system interface (e.g., Web Services), allowing the third party system to submit these changes.
  • the ente ⁇ rise spatial system performs the command and stores updated data in the data store.
  • data e.g., a map image
  • the update may occur in real time.
  • the client software may receive a handback from the third party system indicating that the client software should refresh its data from the data store at the ente ⁇ rise spatial system.
  • the third party system may apply business rules, processes, editable data element validations, and editable data element changes seamlessly with the client software at the client system and have the changes reflected immediately on the display screen at the client computer and in the data store of the ente ⁇ rise spatial system.
  • implementations of the invention provide the ability to notify client software at different client systems of changes to spatial data or associated data made by client software at another client system. In certain implementations, the notifications occur automatically, and, in certain other implementations, client software at different client systems would have to register with the ente ⁇ rise spatial system to receive notifications of changes to spatial data or associated data. L. Editing Spatially Referenced Data
  • Implementations of the invention provide advanced editing features in a client software based spatial editor that interfaces to a server system at the ente ⁇ rise spatial system.
  • the spatially referenced data may include, for example, vector data, raster data, and tabular data, such as, customer information, sales data, and marketing data.
  • the spatial editor may operate as a standalone spatial editor, the spatial editor has the ability to interface to a third party system during any operation. This allows a third party system to seamlessly modify the user prompts, insert additional display screens and functions, apply business specific logic or tailor the editable data element updates from the spatial editor.
  • Implementations of the invention also provide integration with third party systems using a client software handoff interface and, for example, a Web Services interface.
  • Implementations of the invention provide a spatial editor (which, in certain implementations, is part of client software) to allow a user to quickly and easily edit complicated editable data elements from a server system using client software (e.g., browser, software application, etc).
  • client software e.g., browser, software application, etc.
  • client software e.g., browser, software application, etc.
  • additional business logic, editable data element manipulations, and proprietary processes may also be applied.
  • a composite image is separated into data layers that can be selectively turned on and off through a selectable data layer list. When a data layer is selected for editing, the spatially referenced data associated with that data layer is turned off and the editable data elements (e.g., graphical objects that may be edited) are represented by wire frame outlines.
  • the layer selected for editing is referred to as an "edit layer.”
  • the user can turn the edit layer back on to enhance the view of changes and relationships to the original editable data elements while editing.
  • the client software sends a request for information to the server system based upon the image of the data layer.
  • the server system determines spatially which editable data elements were selected from that data layer and retrieves from the data store all of the attributes of the object, such as vertices, that define the viewable shape of the object. Other relevant information for the data layer may also be retrieved.
  • the server system sends this information to the client software.
  • the client software represents the editable data elements as associated points on a display screen.
  • Selected editable data elements may have vertices moved or deleted. Additional vertices or editable data elements may be added.
  • objects i.e., a type of editable data element
  • a single data layer contains one of the three types. For example, this restriction prevents copying lines to polygon data layers and copying polygons to line data layers.
  • the user is prevented from creating an invalid editable data element object for a particular data layer or from modifying a valid editable data element object to create an invalid one.
  • Editable data elements have associated tabular data. Implementations of the invention support the viewing and editing of the associated tabular data.
  • the tabular data has certain defined data types, and the spatial editor will enforce proper validation on entries to ensure that the defined data type restrictions are enforced. Examples of the data types are number, text, number of characters, value limits, etc.
  • a temporary editing buffer is available that allows other editable data elements from different spatial data layers to be added in an editable form.
  • the client software may perform a spatial query against other data layers to retrieve the editable information about those specific editable data elements.
  • the editable data element type (such as point or line) of a particular object in the temporary buffer matches that of the current edit layer
  • the editable data element can be copied from the temporary editing buffer onto the current edit data layer and further modified if desired.
  • the temporary editing buffer is also available to copy portions of editable data elements for attachment to other editable data elements on the editable layer.
  • the spatial editor is able to copy portions of another line or polygon and append those vertices to the currently selected line or polygon. This copy feature eliminates the need for a snap to function, often used in other spatial editors to match new vertices to existing vertices.
  • implementations of the invention provide a more efficient editing technique to make an object being edited conform to a pre-existing shape of another object.
  • two adjacent locations e.g., vertices
  • three locations e.g., points
  • the three locations indicate the starting location, the direction (used for polygons since clockwise or counter clockwise dhections are both valid and optionally used for lines), and the ending location.
  • the client software adds the selected portion of the object from which points are to be copied to the initial editable data element. This processing maybe done against editable data elements in the temporary edit buffer. This editing allows portions of a line to be used as part of a polygon and portions of a polygon to be used as part of a line.
  • a portion of a line may be combined with a portion of a polygon, the restriction preventing copying lines of editable data elements to polygon data layers and copying polygons to line data layers is enforced, so that, for example, a portion of a line may not be, by itself, added as a standalone object to a polygon data layer.
  • the line of the river i.e., a editable data element
  • the line of the river maybe copied into the temporary buffer, and a portion of the line of the river to be attached to the polygon representing the plot of land may be copied to the polygon.
  • the server system does a quick calculation of the total number of vertices for all of the selected editable data elements and prevents editing if this exceeds a threshold.
  • the threshold is determined to be the maximum number of vertices that maybe edited while maintaining good performance and ease of editing. If the threshold is exceeded, the user is notified to zoom in or select specific editable data elements, until the spatial editor allows the editing based upon the number of vertices.
  • the user often attempts an action before the client software indicates that the action is not appropriate.
  • the spatial editor's cursor dynamically modifies itself depending on the mode of operation and which editable data element that the cursor is over to indicate allowed operations and information about the underlying editable data element.
  • the dynamically modifying cursor provides a very quick and intuitive interface for the user.
  • the dynamically modifying cursor will inform the user when the user is over the editable data element(s) that the user is allowed to select or operate on, and the dynamically modifying cursor indicates that no action is possible when over other editable data elements.
  • complicated editing operations are often sent back to the server system for processing to prevent having to put complicated code in the client software. That is, in conventional systems, editing requests are sent from the client system to the server system, the server system performs the editing, and the server system returns a composite image to the client system. In some systems, this can slow the response to the user and increase the support needed by the server system.
  • the spatial editor provides the ability to turn off and on the image of the edit layer, while maintaining all of the other layer images for reference. Additionally, the ability to turn off and on various other images to provide relative position and background during editing is provided. While editing and maintaining the editing context, the spatial editor allows panning and zooming.
  • the spatial editor provides the ability to load all of the spatial data about the images of a layer from a server based system to support the mampulation of editable data elements. Additionally, the spatial editor provides the ability to perform a spatial query against an image to select single or multiple items to be edited, thereby limiting the time to load data from the server system (e.g., there could be thousands of shapes, and the user may wish to modify three shapes, so only data for the three shapes would be loaded from the server system) and the complexity of the user display. [0249] The spatial editor provides the ability to load editable data elements from various layers into a temporary area for usage on the edit layer, either in whole or in part including mixing of data layer types.
  • the spatial editor provides the ability to copy portions of line segments or polygons directly and to append the portions to existing editable data elements.
  • the spatial editor provides the ability to mark multiple vertices on complicated editable data elements and erase them in a single operation.
  • the spatial editor provides the ability to push the execution of complicated spatial updates (e.g., merging four shapes or other manipulations) to the server system or to a dedicated third party system specializing in such operations using the handoff technique described earlier, instead of executing these on the client software.
  • the complicated spatial manipulations can take advantage of server system based processing power and techniques, while using the spatial data store to take into account interaction with other editable data elements.
  • the spatial editor also provides the ability to limit the enabling of editing to editable data elements or groups of editable data elements with less than a certain number of visible vertices to enhance performance without needing a fixed zoom level restriction. Moreover, the spatial editor provides a dynamically modifying cursor to indicate allowed operations and information about the underlying points and editable data elements during editable data element manipulations. The spatial editor provides the ability to detect the editable data element type for the current layer and modify the tools to use that object type. The spatial editor allows multiple editing operations locally without the need of server system access. Furthermore, the spatial editor allows the editing of tabular data associated with the spatial object. The spatial editor also supports handing off data to a third party system for application of business rales and logic to editing requests.
  • FIG. 29 illustrates an editing example in accordance with certain implementations of the invention.
  • the spatial editor combines editable data element 2910 with a selected portion of editable data element 2920 to form editable data element 2980.
  • a user selects editable data element 2910 to receive a portion of another editable data element by, for example, selecting a copy segment command 2915 from a spatial editor UI screen.
  • one of the vertices on the initial editable data element 2910 is selected as the starting location to receive the new segment.
  • the first location 2940 on the editable data element that contains the desired segment to be copied from editable data element 2920 is selected.
  • the next location selected also resides on the editable data element 2920.
  • the next location 2950 indicates which dkection to go between the first and last location selected on editable data element 2920. If editable data element 2920 is a polygon or if a portion of the editable data element 2920 is not displayed on a display screen of the chent system, then, without an indication of direction, it may be ambiguous as to whether to select the segment that is clockwise or counterclockwise between locations 2940 and 2960. Location 2960 represents the third location selected on editable data element 2920.
  • Locations 2940 and 2960 may be existing vertices of editable data element 2920 or, if the location selected is not an existing vertex, a new vertex is created.
  • the last location selected 2970 is the ending location on the initial editable data element 2910.
  • the spatial editor connects locations 2930 to 2940, connects all of the locations (e.g., vertices) between locations 2940 and 2960, and then connects locations 2960 to 2970. This creates the new editable data element 2980 with a matching boundary between editable data elements 2910 and 2920 at the desired locations.
  • FIGs. 30A-30C illustrate editing in accordance with certain implementations of the invention.
  • a composite image displayed by client software is composed of many images 3005 combined 3010 to form the final composite image 3015.
  • FIG. 30B when a particular image 3020 is selected for editing (i.e., the "edit layer"), a background 3030 for editing is generated by combining 3025 all of the remaining images.
  • the edit layer 3045 is requested from the server system in an editable layer format 3050 by the client software.
  • the term "editable layer format" refers to providing a wire frame outline of each editable data element with the vertex position information available, as is illustrated by edit layer 3055.
  • the edit layer 3055 and the background 3030 are combined 3035 and 3060 to form a combined background with an editable layer format 3040 that is displayed to a user, while editing.
  • FIG. 30C changes can be made to the layer 3040, resulting in a combined background with edit layer changed 3065. If a user wishes to view the changes in the edit layer 3080 relative to the original image of that edit layer 3080, then the edit layer 3080 can be turned on (e.g., via a command in a UI screen), and layers 3065 and 3080 are combined 3070 and 3080 to generate a combined background with changed editable layer and original edit layer for reference 3075.
  • FIGs. 31 A-3B illustrate logic for editing in accordance with certain implementations of the invention. Control begins at block 3110 in FIG. 31 A with generation of spatially referenced data layers for data layers.
  • the client software builds a set of spatially referenced data layers and combines them into a composite image (i.e., a viewable image). For example, within the client software, the viewing of the desired background layers and, optionally, the edit layer are enabled, which sets the viewing context for editing.
  • it is determined whether existing items e.g., editable data elements or tabular data
  • items to be edited are selected by, for example a user.
  • the selection may be by spatial query (e.g., submitting a query searching for an address of a plot of land), viewable extent (i.e., a subset of data based on a particular area being viewed, such as a portion of a map that is visible on the display screen), direct selection (e.g., point at a editable data element with a pointing device (e.g., a mouse) and select with the pointing device), etc.
  • viewable extent i.e., a subset of data based on a particular area being viewed, such as a portion of a map that is visible on the display screen
  • direct selection e.g., point at a editable data element with a pointing device (e.g., a mouse) and select with the pointing device
  • the client software sends a request to the server system for the data for the editable data elements in an editable format. If all of the objects on a particular layer are desired, then the layer is selected for editing, and the client software send
  • information is retrieved from the server system about the selected items.
  • the information may include, for example, coordinate reference information, a unique identifier (e.g., an AKID), and optional tabular information.
  • the server system processes the request for editable data elements, creates a package containing the editable data elements, and transmit the package to the client software.
  • edit commands are performed by the client software. Creation of a new object is one type of edit command. For example, a copy command followed by a save command may be performed.
  • block 3120 it is determined whether tabular information is to be edited. If so, processing continues to block 3122, otherwise, processing continues to block 3126. In block 3122, additional tabular information is retrieved from the server system. In block 3124, the tabular data is edited. [0261] In block 3126, it is determined whether editing should be validated by a third party system. If so, processing continues to block 3128, otherwise, processing continues to block 3138. In block 3128, edit results are packaged for handoff. The handoff includes, for example, information and changes to the editable data elements, as well as, session and other system information. In block 3130, the package is handed off to the third party system through, for example, a network or other connection. In block 3132, processing is performed in the third party system. For example, the third party system performs any desired business rule checks and validations on the received command, information, and editable data elements. The third party system may also perform spatial modifications to the editable data element.
  • block 3134 it is determined whether there is to be an update by handback (i.e., because the third party system performed spatial modifications). If so, processing continues to block 3136, otherwise, processing continues to block 3140.
  • a package e.g., with spatial modifications or validation results
  • the client software sends status or update information to the server system, as needed.
  • the update is performed by a Web Services interface, and data (e.g., status or updated data, such as updated editable data elements or updated tabular data) is stored at the server system (block 3142). That is, the third party system can communicate status information or spatial modifications directly back to the server system through a backend connection such as Web Services.
  • block 3144 it is determined whether notification to the chent software is enabled. In particular, it is determined whether the updated information or status have been configured for notification. If so, processing continues to block 3146, otherwise, processing ends. In block 3146, any client software at one or more client systems that requested a notification is notified of the updated information or status.
  • Implementations of the invention allow a user to save all customizations done to the view of the data layers in the client software during a session, including the results of spatial analysis, as a project on the server system. Implementations of the invention allow the same user to open the same saved project at a later time from the client software, and the user session is recreated to the state, as it was when the project was saved.
  • Implementations of the invention allow a user or a group to share the saved projects with other users or groups, by granting specific access privileges.
  • a shared user opens the project, that user's user session is set to the state in which the original user session was when the project was saved.
  • Implementations of the invention enable collaboration among shared users of a project by selectively granting the rights to some of the users to modify the project and make the modifications available to all shared users of the project.
  • Implementations of the invention allow real-time collaboration among shared users of a project by making changes made to the project by one user immediately available to other shared users. [0268] Implementations of the invention ensure that the sharing of customized views of data through shared projects does not circumvent the basic data set level access controls defined in the server system. In other words, a shared project does not automatically allow a user to view data sets stored on the server system that they are not normally granted access to view or modify. [0269] Implementations of the invention not only enable sharing and collaboration of infonnation among users, but also provide confidentiality, security, and integrity of that information.
  • FIGs. 32 and 32 illustrate examples of collaboration in accordance with certain implementations of the invention.
  • collaboration is illustrated in a large distributed computer environment, which includes, for example, a client application 3210, server system 3220, data store 3230, and a rendering system 3240.
  • a demonstrate of how a user will access, retrieve, and view data from the ente ⁇ rise spatial system is provided.
  • a user e.g., a sales director 3202
  • the sales director 3202 at a client system uses client software 3210.
  • the client software 3210 and server system 3220 communicate via a network 3215.
  • the sales director 3202 using the client software 3210, accesses the server system 3220, the data store 3230, and the rendering system 3240 to retrieve and view roads 3231, customers 3232, and sales territory 3233 data, within the region.
  • the sales director 3202 retrieves a composite image that may consist of three data layers: a roads data layer 3251, a customer info data layer 3252, and a sales territory data layer T U 03/08296
  • FIG. 33 is used to continue the example of FIG. 32.
  • processing that happens after the data layers have been retrieved by the user is illustrated.
  • FIG. 33 is used to demonstrate how a sales director 3202 will modify the composite image, assign access privileges, and share a project with others.
  • the sales director 3202 may change the order in which the data layers are viewed; add annotations to the composite image, identifying customers of interests 3362; and, perform some analysis and highlight a sales territory 3363.
  • the sales director 3202 uploads the results of the analysis and the annotations as a saved "project" to the server system 3320 and data store 3230. At this point, only the sales director 3202 may have access to the newly modified project information within the data store 3230. Now the sales director 3202 decides to share this project with team members and seek their input in order to "collaborate”. The sales director 3202 will access the ente ⁇ rise spatial system to assign specific access privileges to team members for this new project. To begin with, the sales director 3202 makes this new "project” accessible to only members of his organization, and no one else within the company. The sales director 3202 grants "view” access to all team members to the project information 3371, and to no other user.
  • the sales director grants "view” access to everyone in the sales group to the customer information 3372.
  • the sales director grants "view & modify” access to the project to team member "B” 3304 to the sales territory data layer 3373, and to no other user.
  • Now only sales organization members e.g., 3302 can access the ente ⁇ rise spatial system and collaborate on this project in varied capacities, but no one else will have such privilege. Sales members have view access to the project layers 3381 and 3382.
  • the sales director 3202 and user "B" 3304 have higher access to the project layers33 81, 3382, 3383, as they can modify the project by changing the way the data is viewed on the client software 3210 and by saving the changes in the server system 3220. When they make changes, all other users who have access to the project will immediately be able to access (e.g., see) any changes.
  • FIG. 34 illustrates metadata tables in a metadata store that are used to enable collaboration in accordance with certain implementations of the invention.
  • the ente ⁇ rise spatial system maintains metadata information in a metadata store 3470 for all resources managed and made available to the client software.
  • the resources include data and application functions. Data is seen by the client software as data layers in the user interface. Each data layer presented to the client software has a corresponding metadata definition in metadata store 3470 called a layer definition table 3472.
  • the ente ⁇ rise spatial system also maintains information about the users, such as login name, user's first name, last name, etc. in yet another table called the user table 3476.
  • the server system accesses this resource using the appropriate metadata table. For example, when the client software wants to view the data for a data layer, the server system goes to the layer definition table 3472 and finds the metadata definition for this data layer. Then, the server system 3472 uses the information contained therein to access the data store, retrieve the data, render the data, and present the data to the client software. In certain implementations, resources cannot be accessed by the ente ⁇ rise spatial system if they are not represented in the appropriate metadata table. [0278] The ente ⁇ rise spatial system maintains information about projects in the project definition table 3474. Each record of data in the project definition table 3473 represents a project that a user can see. The project definition table 3473 contains information, such as the name of the project, owner of the project, and ProjectSpec, which is a detailed description of everything the client software needs to recreate the project for another user.
  • the project definition table 3474 is associated with a project layer table 3480.
  • Each row in the project layer table 3480 associates a particular project with a data layer in the layer definition table 3472.
  • the first row in project layer table 3480 links Projectld 100, which represents a project called Sales Analysis, in the project definition table 3474, with LayerlD 10.
  • LayerlD 10 is a data layer, called Customer Data in the layer definition table 3420. This indicates that when a user opens this particular project, the user should be presented with the Customer Data layer as one of the layers that the user can view.
  • the project layer table 3480 contains information on how the associated data layer should be displayed.
  • the Rendering Spec column identifies how the data in the data layer should be rendered.
  • the Layer Order column indicates the order in which the layers should be shown in the client software. Visibility indicates whether the data layer is automatically made visible when a user opens the project.
  • the project annotation table 3482 is another table associated with the project definition table 3474.
  • the project annotation table 3482 table contains all information on annotations done by the client software before the annotations are saved as part of the project.
  • the Annotation Spec column in the project annotation table 3482 table contains complete instructions for redrawing the annotation when the project is opened.
  • the ente ⁇ rise spatial system maintains access control lists (commonly referred to as ACLs) for each of the projects represented in the project definition table 3480.
  • the access control list for a given project is a list of users who can access the project. In the ente ⁇ rise spatial system, this is done by associating each project with a list of users and maintaining this association in a new table called the project ACL table 3478.
  • the server system Whenever client software requests access to a project, the server system first makes a check to determine whether the project is associated with the user by searching the project ACL table 3478. If the server system finds the association, the server system allows access to the project. Otherwise, the server system rejects the client software request.
  • Each user of the ente ⁇ rise spatial system has a unique metadata entry in the user table 3476. The metadata entry also contains properties of the user. The entries in the user table are used to associate users with other entities, such as projects in the ente ⁇ rise spatial system.
  • FIG. 35 illustrates logic for enabling collaboration in accordance with certain implementations of the invention.
  • the logic describes the process of creating and saving a new "project”, with access privileges, to the ente ⁇ rise spatial P T/US03/08296
  • a user Before the logic of FIG. 35 begins, a user has already accessed a composite image containing possible multiple layers, via the client software, and customized the data view by performing actions, such as highlighting objects, adding annotations, etc. The user then wishes to create and save the current customized view as a project onto the ente ⁇ rise spatial system.
  • Control begins at block 3510 with the user requesting to save a project on the server system.
  • the ente ⁇ rise spatial system allows a user of the client software to request to save a project onto the server system.
  • the client software collects information about the data being viewed by user, including, for example, layers being viewed, the order in which the layers are viewed, annotations added by the user, view elements that are highlighted by the user, etc.
  • the client software sends the data (i.e., the collected information) to the server system.
  • the server system saves the data in the project definition table, project layer table, and project annotation table within the metadata store.
  • the server system will then return a list of users in the current company to the client software (block 3518).
  • the client software presents to the original user, this list of other users in the company, with whom the project may be shared.
  • the user chooses in which other users in the company should see the newly saved project. The user grants access rights to others (e.g., read-only or read-write, etc. access to the project).
  • FIGs. 36 and 37 illustrate logic for collaboration in accordance with certain implementations of the invention. The logic of FIGs. 36 and 37 describes the process of accessing, retrieving, opening, editing, and re-saving an already existing "project" in the ente ⁇ rise spatial system by the client software. Control begins at block 3610 with a user via the client software requesting a list of projects that are available from the server system. In block 3612, the server system queries the project ACL table within the metadata store and, in block 3612.
  • processing continues to block 3618, otherwise, processing ends.
  • the server system retrieves all saved project details based on the user's access rights, for the next project in the project list, from the project definition table, project layer table, and project annotation table within the metadata store.
  • the server system adds the project details to the response being built for the client software.
  • processing continues to block 3618, otherwise, processing continues to block 3626.
  • the server system returns the retrieved project details to the client software.
  • the client software presents a list of projects to the user.
  • the user chooses a project to open from the list of projects.
  • the client software requests the server system to generate images for data layers that are part of the project per the project details (block 3632).
  • Jh block 3634 server system ensures that the user has access rights to the data layers being requested, before the images are generated. The server system will not generate images for data layers for which the user does not have access. The access control mechanism for data sets described in an earlier section is enforced to ensure that the user does not view a data layer that the user is not normally allowed to view.
  • the server system returns the generated images to the client software.
  • the client software recreates a composite view for the user session as seen by the original user who saved the project. In certain implementations, the recreation of the user session is exactly the session seen by the original user.
  • the user wants to make any modifications to the project, processing continues to block 3644, otherwise, processing ends.
  • the user makes changes to the composite image view using the client software.
  • processing continues to block 3650, otherwise, processmg continues to block 3660.
  • the user is given the option to save the project and requests that the project be saved.
  • the updated projected information is sent to the T U 03/08296
  • the server system for example, when the user selects to save the project (e.g., by clicking a Save button of a user interface).
  • the server system ensures that the user has read/write access to the project before saving the project.
  • the user is given the option to save the project as a "new" project and requests that the project be saved.
  • the project information is sent to the server system when the user selects the option to save the project as a "new project.
  • the server system saves the project as a "new" project.
  • the project will be sent back to the server system to be overwritten and saved. If the user does not have overwrite access privileges, the user will be presented the option to save the modification as a "new" project, rather than overwriting the existing one.
  • the ente ⁇ rise spatial system provides application services offering access to geographic information and industry-specific business solutions over a network, such as the Internet.
  • a suite of custom, browser-based tools allows customers (i.e., a type of user) to access a multi-terabyte data warehouse containing, for example, high quality aerial photography, satellite imagery, and information on demographics, environmental change, infrastructure and land use patterns.
  • Proprietary aerial imagery is acquired by an advanced airborne scanning system that provides high resolution and up-to-date multi-pu ⁇ ose images.
  • Aerial imagery is combined with value-added data layers to create "image-data bundles" to support industry-specific solutions.
  • UI screen 3810 provided by the ente ⁇ rise spatial system for online knowledge mapping in accordance with certain implementations of the invention.
  • users can conduct industry-specific analyses, create reports, produce map products, and download information for use in other desktop mapping applications.
  • Customers can use information and solutions provided by the ente ⁇ rise spatial system -for various functions, including, for example, facility siting, environmental analysis and monitoring, tracking changes in resources and markets, risk assessment, and asset management.
  • the ente ⁇ rise spatial system provides GIS solutions to many levels of users - from administrative assistants to specialized consultants. As a result, the ente ⁇ rise spatial system is designed so that the core functionality is available in a manner that is intuitive to a novice computer/Internet user, balanced with the need to provide the more sophisticated user with a means of accessing advanced features offered by the ente ⁇ rise spatial system.
  • the ente ⁇ rise spatial system accommodates subscription and transaction based pricing. That is, customers may pay to use services provided by the ente ⁇ rise spatial system either on a subscription or transaction basis. Both the ente ⁇ rise spatial system software and the back end architecture support these pricing models. In addition, the processes involved (e.g., the registration process for subscription customers and the purchasing process for transactional customers) are straightforward and quick, so that neither of these processes becomes a possible barrier to entry for the adoption of this service.
  • the ente ⁇ rise spatial system is customizable for customers and partners (i.e., a type of user).
  • the ente ⁇ rise spatial system provides GIS solutions to customers in various industries with varying needs.
  • the ente ⁇ rise spatial system software allows for some level of customizations to be inco ⁇ orated for each customer.
  • the ente ⁇ rise spatial system software contemplates the integration of co-branding elements for either customers or partners.
  • the ente ⁇ rise spatial system does not rely upon plugins or a client download.
  • the ente ⁇ rise spatial system provides a web application that minimizes reliance upon any software that a customer would need to download, in order to remove another possible barrier to a customer's acceptance of the services offered by the ente ⁇ rise spatial system.
  • the ente ⁇ rise spatial system provides a level of performance that is acceptable to the customer. That is, the ente ⁇ rise spatial system provides an offering that is data and graphics intensive (e.g., for a web application). Levels of the ente ⁇ rise spatial system software design consider its impact on the overall performance of the services offered, in order to ensure that the final deliverable is considered acceptable in performance by the customer.
  • the ente ⁇ rise spatial system provides for registration of subscribers.
  • each customer Prior to using the ente ⁇ rise spatial system services, each customer first registers for the service, whether the customer is a subscription user or a one-time, transaction-based customer.
  • the registration process is quick and simple, so as not to serve as a barrier to entry for new customers.
  • the registration process obtains, for example, a user's email address (e.g., for communications) and assigns or requests a user name and password for the customer (e.g., for usage tracking and billing).
  • a login and logoff process is integrated in the ente ⁇ rise spatial system, providing the ente ⁇ rise spatial system software with account information for the user who is logging in. This allows the ente ⁇ rise spatial system software to offer business tools and data layers to the customer that the particular customer has subscribed to. This account level identification also allows for user profiles/preferences to be established.
  • the ente ⁇ rise spatial system allows a user to create a map that is custom suited to their needs by defining, for example, the following attributes of the map: the area covered by the map ("viewable extent” or "area of interest”), the type of image to be used for the map, and the resolution of the map.
  • a user can define the location of the map in one of several ways.
  • the first option is for the user to type in any information that defines the location, including, for example, the address, city, county, state, and country, for example, into a field of a UI screen.
  • the user can visually select the area from a selection map, where the user can "click and drag" on a map (e.g., a national map) to define the location.
  • the visual selection map will zoom to include only the area that the user selected. At this point, the user can click and drag again to refine the selection.
  • the user can define the AOI using longitude and latitude values, selecting a United States
  • the user can fine tune the map location using the tools provided with a map preview function, which is discussed in further detail below.
  • a type of image to be used for the map once the user has selected the area covered by the map, the user is presented with choices for the type of image to use for the map.
  • the types of images available for creating a map will vary depending upon the map area that the user has defined, but may include, for example, color aerial imagery, color infrared, satellite imagery, USGS topographic maps, and others.
  • the resolutions available to the user are dependent upon the map area and type of image that the user has selected.
  • a map preview function is available at anytime that a customer is working on a map-related task.
  • the map preview function displays the custom map on the right hand side of the UI screen. While the term "preview" is sometimes used for a view-only function, the map preview functionality within ente ⁇ rise spatial system also allows the user to make basic changes to the map by providing a basic set of tools that allow for user manipulation of the map. These tools include, for example, zoom in, zoom out, zoom box, and pan.
  • the map area By selecting the zoom in tool and clicking on the map, the map area will zoom in by 50%, centered at the click point. By selecting the zoom out tool and clicking on the map, the map area will zoom out by 50%, centered at the click point. By clicking and dragging a rectangular box (a zoom box) on the map, the map area will zoom to the extents of the box.
  • the panning tool Once the panning tool is selected, the user can "grab" the map and move it, changing the center point of the map. The zoom level remains the same when the pan tool is used, therefore using the panning tool ultimately changes the boundaries that define the area of the map.
  • the ente ⁇ rise spatial system allows data to be overlaid onto a map. Once the basic map information has been provided, the user can then select from various "data overlays". These data overlays provide geographic data in a visual manner that can be overlaid and matched up with the map.
  • the categories of data that can be overlaid include, for example, environmental, political boundaries, infrastructure, and demographic data, and more.
  • various industry-specific data layers may be available (e.g., electric line right of ways).
  • the data available to overlay on the base map is determined by the services that the customer has subscribed to.
  • the ente ⁇ rise spatial system provides analysis tools that offer numerous powerful capabilities, including, for example, the following: point 'n view, point n' attribute, measure linear distances, measure user defined areas, and buffering tools.
  • point n' view tool After selecting the point n' view tool, the user is able to click on any data element overlaid on the current map, and a pop up dialog box containing a description of that element appears.
  • the data presented varies based upon the type of data element that the user has selected.
  • the point n' attribute tool allows a user to click on any object on the current map, type in various categories of information that describes the object, and then automatically save out these associated descriptions as a data store record attached to that object.
  • ente ⁇ rise spatial system provides annotation tools.
  • annotation tools allow the user to add custom information to the map.
  • These tools include, for example, text and shape overlay, which allow users to type in text to be overlaid on the map or draw basic shapes such as squares, circles, lines, and polygons that are layered on top of the map.
  • text and shape overlay allow users to type in text to be overlaid on the map or draw basic shapes such as squares, circles, lines, and polygons that are layered on top of the map.
  • the ente ⁇ rise spatial system offers reports that provide detailed breakdowns of that data within the location boundaries defined by the user. The breakdown of information is unique for each type of data.
  • the ente ⁇ rise spatial system supports transaction-based purchases (e.g., for non-subscribers).
  • the ente ⁇ rise spatial system integrates an e-commerce backend shopping solution to support purchases on a transaction-by-transaction basis, allowing users to pay for an "a la carte" item with, for example, a credit card.
  • the ente ⁇ rise spatial system provides functionality that allows users to print out a copy of the map, or save the map for later use. If the user chooses to print out a hard copy of the map, the ente ⁇ rise spatial system allows the user to define various attributes that define the layout of the printout. In certain implementations, the ente ⁇ rise spatial system will require payment for maps before the maps are printed or saved.
  • the ente ⁇ rise spatial system allows customers to create unique profiles that describe, for example, which data layers should be available to the customer, how various preference settings should be setup, and more.
  • this function allows subscription customers to edit their registration and payment information.
  • the ente ⁇ rise spatial system provides browser support.
  • the ente ⁇ rise spatial system software is a web-based application service provider (ASP) that supports, for example, the following browsers: Microsoft® Internet Explorer® version 4.x and above and Netscape® 5.x and above.
  • ASP application service provider
  • the ente ⁇ rise spatial system software is run without client downloads in order to address, for example, co ⁇ orations and government entities who do not allow for outside software to be installed on employee systems. This also allows users to access projects while on the road or at another workstation.
  • the ente ⁇ rise spatial system offers client downloads for functionality that would benefit from a client download. The benefit could come in the form of improved performance, more robust functionality, etc.
  • the ente ⁇ rise spatial system is designed in a way that supports a "0 to fat" client download, where a "fat” client download is defined as augmenting approximately 75% or more of the functionality through some level of download.
  • This approach allows users the flexibility to download various client downloads or not, depending upon what is most important to them (e.g., performance vs flexibility).
  • a specific function is called, it is determined whether the client download is stored locally at the client system. If a client download is present at the client system, the download is used to perform the functionality.
  • each function that is performed with a client download may also be performed using server system transactions, so, if the user opts not to download a client piece, the functionality is still available at the server system.
  • This section describes user interface guidelines standards for use in laying out and implementing the various UI screens that comprise the ente ⁇ rise spatial system in accordance with certain implementations of the invention.
  • the user interface guidelines and standards maybe modified without departing from the scope of the invention.
  • Detailed attribute characteristics are provided for the various user interface elements that are used across the UI screens.
  • UI screen layout standards for UI screen design are provided so that UI screens have a consistent look and feel across the ente ⁇ rise spatial system.
  • alignment positions when defining the locations where the various UI elements should be laid out, "approximate" pixel distances are used. Approximate distances are used as it is difficult in the web environment to layout to an exact pixel. However, elements that are defined with a similar location are aligned. For example, a group of UI elements that are described as being "left justified, approximately 5 pixels from the left edge” may not be in actuality 5 pixels from the edge. However, in this example all of the controls are left aligned with each other.
  • ente ⁇ rise spatial system software dimensional constraints, in designing the user interface for the ente ⁇ rise spatial system software, in certain implementations, certain assumptions are made, some of which place constraints on the user interface, and therefore are considered in order to understand the design.
  • the assumptions that impact the workspace available to the ente ⁇ rise spatial system UI include, for example: (1) the ente ⁇ rise spatial system software is designed to support 800 x 600 resolutions in a manner that does not require any horizontal scrolling to access the ente ⁇ rise spatial system software functionality; (2) the ente ⁇ rise spatial system software does not require a software or plugin download by the user (i.e., the ente ⁇ rise spatial system software is browser-based); and, (3) Microsoft® Internet Explorer® is the primary browser in use when customers interact with the ente ⁇ rise spatial system.
  • the following browser elements are the typical elements that are in "view" to the user: standard toolbars (e.g., set to display in large icon mode), address bar, status bar.
  • standard toolbars e.g., set to display in large icon mode
  • address bar e.g., address bar
  • status bar e.g., address bar
  • the remaining assumptions drive the limitations that the ente ⁇ rise spatial system encounters with respect to the vertical dimensions available for the ente ⁇ rise spatial system workspace. Since vertical scrolling is acceptable, these assumptions need not be correct for every customer using the ente ⁇ rise spatial system software, rather the intent of the assumptions is to provide a targeted dimension of available vertical workspace.
  • FIG. 39 illustrates in UI screen 3910 constraints in workspace faced by the ente ⁇ rise spatial system software in accordance with certain implementations of the invention.
  • the vertical dimension available for the ente ⁇ rise spatial system workspace is 460 pixels in height and this dimension has the opportunity to provide a larger workspace, in that vertical scrolling is allowed (although certain implementations minimize vertical scrolling).
  • the horizontal dimension that is available for the ente ⁇ rise spatial system workspace varies, depending upon whether or not a vertical scroll bar is required on the UI screen at the time.
  • the available UI screen width is 796 pixels (which is a maximum distance, and, in certain implementations, horizontal scrolling is not required in the 800 x 600 mode), and if a vertical scroll is required on a UI screen, the available UI screen width is 780 pixels (which is a maximum distance, and, in certain implementations, horizontal scrolling is not required in the 800 x 600 mode).
  • FIGs. 40A - 40E illustrate UI screens in accordance with certain implementations of the invention.
  • the UI screens within the ente ⁇ rise spatial system software leverage certain common UI screen components. These shared components simplify the development effort and provide a consistent user experience throughout the ente ⁇ rise spatial system software.
  • FIG. 40A illustrates common elements in UI screen 4010 in accordance with certain implementations of the invention.
  • FIG. 40B illustrates a ' title bar 4020. The name of the project file that is opened is displayed within the title bar. If the project does not yet have a name, then the text "New Project" appears ⁇ . The standard title bar text attributes apply.
  • FIG. 40C illustrates a logoff button 4030 in accordance with certain implementations of the invention.
  • This button is a graphic image that resides on the right side of the logo banner.
  • the size of this banner may be approximately 50 pixels wide by approximately 25 pixels high.
  • Justification of the banner is as follows: the left edge of the logoff graphic is approximately 10 pixels from the right edge of the UI screen and the graphic is centered horizontally within the banner area.
  • the cursor indicates that the area is selectable by the user.
  • the logoff process begins.
  • FIG. 40D illustrates menu selections 4040 in accordance with certain implementations of the invention. Drop down menu selections are available from all "full screen" pages within the ente ⁇ rise spatial system software.
  • menu buttons and pull downs include menu selections, which include, for example, File, Layer, Drawing, Analysis, Business Solutions, Preferences and Help menu selections.
  • individual selections include, for example: within the File Menu: New, Open, Save, Print Map, Email Map, Save Map, Data Buy, and Close; within the Layer Menu: Change Order, Edit Favorites List, Zoom to a Single Layer, and Zoom to All Layers; within the Drawing Menu: Text tool, Line tool, Polyline tool, Rectangle tool, Ellipse tool, and Polygon; within the Analysis Menu: Select Point, Select Line Region, Select
  • FIG. 40E illustrates a secure connection indicator 4050 in accordance with certain implementations of the invention. Once the user gets to the login page, the secure connection indicator appears. This indicator is shown on every UI screen where a secure connection is maintained.
  • the ente ⁇ rise spatial system software uses common controls that may be found on many Application Service Provider (ASP) model applications available on the Internet.
  • ASP Application Service Provider
  • FIG. 41 illustrates a section title 4110 in accordance with certain implementations of the invention.
  • the controls may be grouped for organizational pu ⁇ oses. For example, a section title is used to divide the work area into the multiple sections and to provide the user with an understanding of the function of a particular section.
  • FIG. 42 illustrates a control prompt 4210 in accordance with certain implementations of the invention. Typically, each control that is used in the application will have text prompting the user what to do for the given control.
  • FIG. 41 illustrates a section title 4110 in accordance with certain implementations of the invention.
  • the controls may be grouped for organizational pu ⁇ oses. For example, a section title is used to divide the work area into the multiple sections and to provide the user with an understanding of the function of a particular section.
  • FIG. 42 illustrates a control prompt 4210 in accordance with certain implementations of the invention. Typically, each control that is used in the application will have text prompting the user what to do for the given control.
  • FIG. 41 illustrates
  • FIG. 43 illustrates an Edit box 4310 and a Drop Down list box 4312 in accordance with certain implementations of the invention.
  • an Edit box 4310 or Drop Down list box 4312 When an Edit box 4310 or Drop Down list box 4312 is called out, certain standards are attributed to these controls based upon industry standards that define such controls.
  • the edit boxes and drop down list boxes used within the ente ⁇ rise spatial system software adhere to industry standards.
  • certain standards that are specific to the needs of the ente ⁇ rise spatial system UI are followed as well.
  • FIG. 44 illustrates Radio button controls 4410 and Check Box controls 4412 in accordance with certain implementations of the invention.
  • Radio button controls 4410 used within the ente ⁇ rise spatial system software adhere to industry standards, but also consistently adhere to several placement standards that are unique to the ente ⁇ rise spatial system.
  • FIG. 45 illustrates a sample Grid Display 4510 in accordance with certain implementations of the invention. In some cases, a Grid Display 4510 is required to display multiple items, either for viewing pu ⁇ oses only, or to allow the user to take action of some sort.
  • FIG. 45 illustrates a UI screen that integrates a grid that demonstrates all of the elements that may be required for a given UI screen. A grid consists of multiple columns, separated by lines, with each column having an optional text header.
  • a grid will also contain multiple rows, having embedded edit boxes and embedded check box and radio button controls.
  • embedded edit boxes may also be used in grids, for example, to allow the user to change the quantity of a purchase order.
  • These embedded controls have the same characteristics as standard edit boxes, with the exception that these controls are sized to fit within the column in which they are used.
  • check box controls and/or radio controls may be embedded.
  • the check box controls allow the user to "select" items, in order that some action may be undertaken on that item. For example, a user may select an item from the purchase list to be removed from the purchase list. This control has all of the same characteristics of a standard checkbox control, except that it is embedded within the grid.
  • FIG. 46 illustrates a table display 4610 in accordance with certam implementations of the invention.
  • the table display is similar to the grid display, but the table display is typically used to display shopping cart-related information.
  • FIG. 46 illustrates a UI screen that integrates a table used in the shopping cart portion of the ente ⁇ rise spatial system software. Since there are many similarities with grid displays, table display standards are defined assuming all of the characteristics of the grid display, then defining the differences between the two. Table displays have a summary row, which is an additional box frame located immediately below the main display, with a height sufficient to contain the summary information.
  • FIG. 47 illustrates a control frame 4710 in accordance with certain implementations of the invention. Control frames are used to help organize UI screens.
  • FIG. 48 illustrates command buttons 4810 in accordance with certain implementations of the invention.
  • Command buttons refer to those buttons, which, when selected, execute a command of some sort and thus perform an action. Examples of command buttons are shown in FIG. 48.
  • Other examples of command buttons include, for example, print, refresh map, and login.
  • FIG. 49 illustrates hyperlinks 4910 in accordance with certain implementations of the invention. Hyperlinks refer to those buttons, which, when selected, links the user to another UI screen, (e.g., either within the ente ⁇ rise spatial system software or on the ente ⁇ rise spatial system marketing website).
  • FIG. 50 illustrates a pop up dialog box 5010 (which is a type of UI screen) in accordance with certain implementations of the invention.
  • pop up dialog boxes are used infrequently in the ente ⁇ rise spatial system, pop up dialog boxes are used whenever the user is the middle of a workflow, and some additional information is required from the user in order to proceed.
  • FIG. 51 illustrates a small pop up dialog box 5110 in accordance with certain implementations of the invention.
  • FIG. 52 illustrates a large pop up dialog box 5210 in accordance with certain implementations of the invention.
  • FIG. 53 illustrates a color picker 5310 in accordance with certain implementations of the invention.
  • the color picker is a pop up dialog box that allows the user to change the color of any of several object types, including font color, shape colors, line colors, data layer coloring, etc.
  • FIG. 54 illustrates a Message UI screen 5410 in accordance with certain implementations of the invention.
  • Message UI screens are full UI screen messages that populate the entire ente ⁇ rise spatial system work area. This form of message handling is typically used for confirmation of the completion of tasks, as shown in Message UI screen 5410.
  • message pushing the means in which error conditions are handled are important to the overall user experience. By providing consistent messaging with straightforward resolutions, error handling can improve the user's overall approval of the ente ⁇ rise spatial system. Many of the error messages within the ente ⁇ rise spatial system software are handled by "pushing" the error message to the top of the UI screen, thus, pushing all other data down the UI screen by the appropriate amount.
  • the error messages themselves vary depending upon the error, and are described further below. Certain UI standards are applied to these error messages, regardless of the error specifics. In particular, FIG.
  • FIG. 55 illustrates a UI screen 5510 before an error has occurred in accordance with certain implementations of the invention.
  • an error message will be "pushed" to the top of the UI screen, and all other UI screen elements shifted downward as shown below. Jh this case, a user selected a user name that is not available.
  • FIG. 56 illustrates UI screen 5610 in accordance with certain implementations of the invention: In FIG. 56, the user remains on the same UI screen as in FIG. 55, but an error message now appears at the top of UI screen 5610. In certain implementations, a scroll bar is available, and the user uses the scroll down in order to access the command buttons. [0345] As for pop up error messages, pop up error messaging is used throughout the ente ⁇ rise spatial system software.
  • FIG. 57 illustrates a pop up error message 5710 in accordance with certain implementations of the invention.
  • the ente ⁇ rise spatial system provides a registration wizard. Prior to using the ente ⁇ rise spatial system service, every customer first registers with the ente ⁇ rise spatial system, whether the customer is a subscription user or a one-time, transaction-based customer. In the case of the subscription user with a site license account, an ente ⁇ rise spatial system representative may register the customer using the ente ⁇ rise spatial system admin tool. For transaction-based customers, registration may be handled using a short registration wizard.
  • the registration wizard process is quick and simplified, so as not to serve as a barrier to entry for new customers.
  • the main registration process obtains the user's email address (e.g., for communications) and assigns or allows the user to choose a user name and password (e.g., for usage tracking and credit card storage).
  • the registration process is designed to be a one-time experience for the customer. Once the customer has completed the registration process, the customer will have a username and password, and will be able to login to the ente ⁇ rise spatial system service in the future.
  • FIG. 58 illustrates logic for the registration process for transaction-based users in accordance with certain implementations of the invention.
  • Control begins at block 5810 with a Welcome UI screen being displayed to the user.
  • processmg continues to block 5814, otherwise, if a cancel button has been selected, processing continues to block 5830.
  • block 5814 user login information is collected via a registration UI screen.
  • block 5816 if a continue button was selected, processing continues to block 5818, otherwise, if a cancel button has been selected, processing continues to block 5843.
  • the user name is checked against a data store.
  • data is saved. Jh block 5826, the user is congratulated for registering via a UI screen.
  • the ente ⁇ rise spatial system software is available for use. [0349]
  • a cancel registration UI screen is displayed.
  • processing continues to block 5836, otherwise, processing returns to block 5810.
  • a cancellation confirmation UI screen is displayed.
  • Jh block 5838 if the button selected is home, processing continues to block 5840 and the user is returned to a home page, otherwise, processing returns to block 5810.
  • a cancel registration UI screen is displayed.
  • processing continues to block 5846, otherwise, processing returns to block 5814.
  • a cancellation confirmation UI screen is displayed.
  • processing continues to block 5850 and the user is returned to a home page, otherwise, processing returns to block 5814.
  • FIG. 59 illustrates common registration wizard 5910 elements in accordance with certain implementations of the invention.
  • the registration work window is the area that contains all dynamic information during the registration process. In this window, all of the controls appear on the various UI screens that provide the functionality of the registration wizard.
  • FIG. 60 illustrates a registration UI screen 6010 requesting user login information in accordance with certain implementations of the invention.
  • a password edit box supports alphanumeric values, supports special characters (e.g., _, %, &, *, #, ', @), is not case sensitive, masks input text, does not cache password that is input, is a required field, and is always available to the user.
  • a repeat password edit box supports special characters (e.g., _, %, &, *, #, ', @), is not case sensitive, masks input text, does not cache repeat password that is input, is a required field, is always available to the user.
  • the secret question drop down box contains, for example, the following questions for selection by the user: "What city were you born in?”, "What is your favorite food?", "What is your pet's name?”, "When is your anniversary?", and "Mother's maiden name?”.
  • the user is taken to the Registration UI screen 760, which is a Welcome UI screen. If the user selects the finish button, it is checked that the user has input data into all of the required fields on this UI screen.
  • the User Name edit box If the User Name edit box has been filled in, a check is made to determine whether the user name begins with a space. If a space appears at the beginning of the user name, a message is pushed to the top of the UI screen, with text reading, "The User Name that you have provided is invalid, since a User Name cannot begin with a space. Please enter another user name.”. The User Name edit box is cleared. [0355] If the Repeat Password edit box has been filled in, a check is made to determine whether the character string matches exactly to the character string provided in the Password edit box. If the two fields do not match, an error message is pushed to the top of the UI screen, with text reading, "The Repeat Password did not match the original password that you provided.
  • FIGs. 61 and 62 illustrate cancel registration and cancellation confirmation UI screens, respectively, in accordance with certain implementations of the invention. If the user selects the cancel button in UI screen 6010, the user is taken to the registration UI screen 6110 to cancel registration. In UI screen 6110, if the user selects the yes button, registration information gathered up until this point is discarded and the user name is made available to others.
  • the user is linked to the ente ⁇ rise spatial system homepage. If the user selects the no button, the registration information gathered up until this point is kept. Th user is returned to the registration UI screen 6010 from which the user originally selected the cancel button. The UI screen 6210 is used to confirm cancellation. If the user selects the Home button in UI screen 6210, the user is taken to the ente ⁇ rise spatial system home page Uniform Resource Locator (URL). If the user selects the Register button, the user is taken to registration UI screen 6010.
  • URL Uniform Resource Locator
  • an ente ⁇ rise spatial system representative is responsible for undertaking the registration process on behalf of a subscription customer.
  • the ente ⁇ rise spatial system representative registers the customer using an ente ⁇ rise spatial system admin tool.
  • the ente ⁇ rise spatial system handles various types of information that are of a sensitive nature to the user, including personal contact information and billing/credit card information.
  • the ente ⁇ rise spatial system protects this sensitive information.
  • a secure login procedure is required to ensure that only authorized individuals have access to a given account.
  • the connection remains secure until the point that the user has logged off of the ente ⁇ rise spatial system.
  • each UI screen within the application shows the secure connection indicator.
  • the ente ⁇ rise spatial system determines whether certain low-volume users are responsible for placing a disproportional load on the server system at the ente ⁇ rise spatial system.
  • the option will also exist to track the usage of customers in order to send personalized communications to the customers based upon their usage. For example, for heavy volume users, a trigger can be set to make sure that a regular phone call is made proactively to make sure that the customer is happy, get feedback for new features, or gauge if there is an interesting public relations (PR) opportunity for the ente ⁇ rise spatial system.
  • PR public relations
  • transactional users who do certain tasks on a regular enough basis so that it makes sense for them to move to a subscription service plan may be tracked and contacted.
  • the login process identifies the user and enables the ente ⁇ rise spatial system to assign profiles to various users that can be used to customize the user experience once the user has successfully logged into the system.
  • the login process serves as the entry point for users accessing the ente ⁇ rise spatial system. The process is straightforward, and involves retrieving verifying the validity of the user name and password provided by the person attempting to login to the ente ⁇ rise spatial system software.
  • the login process consists of three different UI screens, a significant amount of logic and error handling is required.
  • FIG. 63 illustrates logic for login in accordance with certain implementations of the invention. Control begins at block 6310, with display of a main login UI screen.
  • processing continues to block 6370; if a login button was selected, processing continues to block 6374; if a register now button was selected, processing continues to block 6372; and, if a forgot password button was selected, processing continues to block 6314.
  • a user id UI screen is displayed.
  • processing continues to block 6315, otherwise, processing continues to block 6317.
  • hi block 6315 a cancel login UI screen is displayed.
  • processing continues to block 6317, if there is an error, processing continues to block 6318 and an error message is pushed, otherwise, processing continues to block 6320.
  • the ente ⁇ rise spatial system attempts to get a shared secret from a data store.
  • processing continues to block 6330, otherwise, processing continues to block 6324.
  • processing continues to block 6324, if there have been less than three attempts to login, processing continues to block 6326 and an error message is pushed, otherwise, processing continues to block 6328 and a lockout message is pushed. From blocks 6326 and 6328, processing continues to block 6314. [0364] In block 6330, a shared secret UI screen is displayed, hi block 6332, if a continue button is selected, processing continues to block 6334, otherwise, if a cancel button is selected, processing continues to block 6338 and a cancel login UI screen is displayed. In block 63334, if there is an error, processing continues to block 6336 and an error message is pushed, otherwise, processing continues to block 6340.
  • a shared secret received from the user via the shared secret UI screen is checked against the data store.
  • processing continues to block 6350, otherwise, processing continues to block 6344.
  • processmg continues to block 6346 and an error message is pushed, otherwise, processing continues to block 6348, and a lockout message is pushed. From blocks 6346 and 6348, processing continues to block 6330.
  • block 6350 if the session file is present, processing continues to block 6352, otherwise, processing continues to block 6356.
  • session data is loaded.
  • the ente ⁇ rise spatial system software is made available for use.
  • processing continues to block 6356, if the user is a subscriber, processing continues to block 6358, otherwise processing continues to block 6364.
  • block 6358 if this is a first time login, processing continues to block 6360, otherwise, processing continues to block 6364.
  • block 6360 a change password UI screen is displayed, allowing the user to change the login password.
  • block 6362 the changed password (if any) is saved.
  • block 6365 profile information is retrieved.
  • the ente ⁇ rise spatial system software is customized based on the profile information. Then, processing continues to block 6354.
  • FIG. 64 illustrates common login UI screen 6410 elements in accordance with certain implementations of the invention.
  • the common UI elements for the login process are identical to the common elements in the registration wizard, with a minor change. Specifically, the text title reads "CUSTOMER LOGIN”.
  • FIG. 65 illustrates a main login UI screen 6510 in accordance with certain implementations of the invention.
  • a User Name edit box includes, for example, the following attributes: text that reads "User Name:”; display length of the edit box is 25 characters; a maximum length of customer input is 50 characters; a minimum length of customer input is 2 characters; supports alphanumeric values; supports special characters, including "@", "_", ".”; is not case sensitive; is a required field; is always available to the user; and, has initial focus when the UI screen is first presented to the user.
  • the Password edit box includes, for example, the following attributes: text reads "Password:”; display length of the edit box is 25 characters; maximum length of customer input is 25 characters; minimum length of customer input is 6 characters; supports alphanumeric values; supports special characters "_, %, &, *, #, ', @"; is not case sensitive; text that is input is masked; password that is input is not cached; is a required field; and, is always available to the user.
  • the Login button includes, for example, the following attributes: standard control button attributes and button text reads, "login".
  • "I forgot" hyperlink includes, for example, the following attributes: standard hyperlink attributes; text is located below all of the fields, left justified and located above the Registration hyperlink; text reads, "If you have forgotten your User Name or Password, click here.”; and, the word "here” is a hyperlink.
  • the Registration hyperlink includes, for example, the following attributes: standard hyperlink attributes; text is located below all of the fields, left and bottom justified; the text reads, "If you are a new user, you can register in just minutes.”; and, the word "register” is hyperlink.
  • the User Name and Password are considered valid if both of the following conditions are met: the User Name exists in the ente ⁇ rise spatial system data store (case insensitive) and the password that the user provided matches exactly (although case-insensitive) to the password associated with the account defined by the User Name above. If the check reveals that the User Name and Password are not valid, the "number of login attempts" counter is incremented by one. A check is made to determine whether the number of login attempts is three (3) or more. If the number of login attempts is not three (3) or more, then an error message is pushed to the top of the UI screen, with text reading, "The User Name and/or Password that you provided is invalid. Please enter this information again.” Both fields are cleared.
  • a user lockout will occur. This will lock the user out from further login attempts for a 24 hour period and pushes the lockout error message "Due to too many login attempt errors, this account cannot be accessed at this time. For security pu ⁇ oses, the account will be locked out for a 24 hour period. To remove this hold prior to the 24 hour period, call the ente ⁇ rise spatial system customer support at ⁇ insert phone #>". This lock out will also trigger that an email be sent to the account owner notifying the owner of the situation. [0377] Also, a check is performed to make sure that a temporary session file is not present on the user's local system.
  • the ente ⁇ rise spatial system software reads the information from the file, and uses this information to set "number of login attempts" counter to one, launch the software to the UI screen that the user was on at the time of interruption, and load all of the data that the user had provided on various UI screens during the previous session.
  • FIG. 66 illustrates a login UI screen 6610 in accordance with certain implementations of the invention. If the user selects the I forgot hyperlink, the user is taken to the login UI screen 6610. If the user selects the Registration hyperlink, the user is taken to the Registration UI screen.
  • the email Address edit box includes, for example, the following attributes: text reads "email Address:*"; display length of the edit box is 25 characters; maximum length of customer input is 40 characters; minimum length of customer input is 5 characters; supports alphanumeric values; supports special characters, including "@", "_", ".”; is not case sensitive; is a required field; and is always available to the user.
  • the Continue button includes, for example, the following attributes: standard control button attributes; button text reads, "continue”; button has a graphic arrow pointing to the right.
  • the Cancel button includes, for example, the following attributes: standard control button attributes and button text reads, "cancel”.
  • FIG. 66 if the user selects the continue button, a check is made to determine whether the user has input data into either the User Name or the email edit boxes. If not, an error message is pushed to the top of the UI screen, with text reading, "You must provide either your User Name or email address in order to continue the login process with the ente ⁇ rise spatial system.” A check is made to determine whether the minimum number of required characters for the field that the user has elected to fill in.
  • the "get shared secrets" counter is set to one.
  • the shared secret question is obtained for the user, based upon the ID provided by either the User Name or the email address.
  • the user is advanced to the shared secret UI screen 6710, which is illustrated FIG. 67 in accordance with certain implementations of the invention. If the user selects the cancel button, the user is taken to the cancel login UI screen.
  • the introductory text for the shared secret UI screen reads: "During registration, you provided a response to the Security Question below. Enter the same response in the space provided.”
  • Th shared secret prompt is a dynamic text display area, in which the shared secret for the user is displayed. The secret is obtained from the server system at the ente ⁇ rise spatial system, based upon the user ID information provided on the user ID UI screen.
  • the Response edit box includes, for example, the following attributes: text reads "Response:*"; display length of the edit box shall be 25 characters; maximum length of customer input is 25 characters; minimum length of customer input is one character; supports alphanumeric values; is not case sensitive; is a required field; is always available to the user; and, has an initial focus when the shared secret UI screen is first presented to the user.
  • the Continue button includes, for example, the following attributes: standard control button attributes; button text reads, "continue”; and, button has a graphic arrow pointing to the right.
  • the Cancel button includes, for example, the following attributes: standard control button attributes and button text reads, "cancel".
  • a check is made to determine whether the user has input data into the Response edit field. If not, an error message is pushed to the top of the UI screen, with text reading, "You must provide a response to your Security Question in order to login to the ente ⁇ rise spatial system. Provide your response and select "continue”. If the Response edit box has been filled in, a check is made on the server system to make sure that the user has provided the correct response to the Security Question.
  • the "number of answer shared secret attempts" counter is incremented by one. A check is made to determine whether the number of answer shared secret attempts is three (3) or more. If the number of answer shared secret attempts is not three (3) or more, then an error message is pushed to the top of the UI screen, with text reading, "The Response that you provided is incorrect.- Please try again.”. The Response edit box is cleared. If the number of login attempts is three (3) or more, then a user lockout will occur. This will lock the user out from further login attempts for a 24 hour period and push the lockout error message "Due to too many login attempt errors, this account cannot be accessed at this time. For security pmposes, the account will be locked out for a 24 hour period.
  • the ente ⁇ rise spatial system customer support at ⁇ insert phone #> This lock out will also trigger that an email be sent to the account owner notifying the owner of the situation. If the response is correct, the "answer shared secrets" counter is set to one.
  • the change password UI screen 6810 which is illustrated in FIG. 68 in accordance with certain implementations of the invention. If the user is not a subscription customer who is logging on for the first time, the user is logged into the ente ⁇ rise spatial system, and advanced to the Welcome UI screen. If the user selects the cancel button, The user is taken to the cancel login UI screen.
  • the change password UI screen 6810 is designed to require subscription customers to change their password at first login. The reason to enforce this is for security pu ⁇ oses, since an ente ⁇ rise spatial system representative created the user's original password. [0393] In FIG.
  • the Password edit box includes, for example, the following attributes: text reads "Password:"; display length of the edit box shall be 25 characters; maximum length of customer input is 25 characters; minimum length of customer input is 6 characters; supports alphanumeric values; supports special characters "_, %, &, *, #, ', @"; is not case sensitive; text that is input is masked; the password that is input is not cached; is a requhed field; is always available to the user; and, has an initial focus when the UI screen is first presented to the user.
  • the Repeat Password edit box includes, for example, the following attributes: text reads "Repeat Password:”; display length of the edit box shall be 25 characters; maximum length of customer input is 25 characters; minimum length of customer input is 6 characters; supports alphanumeric values; supports special characters "_, %, &, *, #, ', @"; is not case sensitive; text that is input is masked; the repeat password that is input is not cached; is a required field; and, is always available to the user.
  • the Continue button includes, for example, the following attributes: standard control button attributes; button text reads, "continue”; and, the button has a graphic arrow pointing to the right.
  • the Cancel button includes, for example, the following attributes: standard control button attributes and button text reads, "cancel".
  • the ente ⁇ rise spatial system supports high level navigation.
  • the user interface of the ente ⁇ rise spatial system is designed to put most of the power of the service into a "Main UI screen" that can branch off to complimentary UI screens when needed.
  • the Main UI screen covers the functionality that is common to all of the major task workflows within the application, including defining the AOI, selecting base imagery, selecting vector data layers, and more.
  • FIG. 69 illustrates conceptual logic for the main UI screen in accordance with certain implementations of the invention. That is, FIG. 69 provides a logical overview of the high level navigation structure of the ente ⁇ rise spatial system software.
  • a Welcome UI screen (Portal) 6910 is displayed. From there, a user may navigate to a main UI screen 6912. From the main UI screen 6912, a user may select various functionality, such as data buy 6914, create map 6916, analysis reports 6918, or other functionality. From create map 6916, a user may select map preview 6920, and from map preview 6920, a user may select print map 6922, email map 6924, or save map 6926.
  • the ente ⁇ rise spatial system provides the ability to be able to customize the ente ⁇ rise spatial system experience to different customers. There are two components to this customization. The first is being able to create a unique portal that users of a company will pass through on their way to accessing the ente ⁇ rise spatial system service and tools. The second is to ensure that the ente ⁇ rise spatial system tools are configurable so that their look and feel can be changed depending on the user, and therefore the company, that is using the ente ⁇ rise spatial system tools. [0403] In terms of understanding the portal, a portal is a series of HTML pages that users first go through in order to access the ente ⁇ rise spatial system service. Under the ente ⁇ rise spatial system design, the portal displays different HTML pages depending on who the user is. This determination is made at the login stage, when the user first logs into the service. The portals are hosted by ente ⁇ rise spatial system.
  • the portal is built upon a number of frames, which are fluid and dynamic to account for changes in layout and content. [0404] That is, the portal content is fluid and dynamic, so some content could change daily, some could change monthly. The portal content is customized to companies.
  • FIG. 70 illustrates sample portal content 7010 in accordance with certain implementations of the invention.
  • the portal is composed of a number of frames, some single column, some multi-column.
  • Each frame has information that can be served may be served by the ente ⁇ rise spatial system, the company itself, or a third party, such as Reuters.
  • the portal may include a banner.
  • the header is the top frame, which displays the company branding, in this case the ente ⁇ rise spatial system logo, as well as, the ability to log off. In most cases this frame should reflect the design of the ente ⁇ rise spatial system software itself.
  • the header is a frame that contains a dynamic tag that displays the user's full name.
  • the header also has options for customizing the layout of the portal. The user is able to control what the user sees.
  • Ente ⁇ rise spatial system news may be a section of the portal that contains information that is ente ⁇ rise spatial system specific, such as new product updates, bug information, or up sell opportunities. This section may even be "empty” if there is no ente ⁇ rise spatial system news, and may appear when needed. Under such a scenario, the layout engine is able to "show and hide" ente ⁇ rise spatial system news, and adjust the layout of existing content where necessary.
  • the Tip of the Day is a common feature among many sites where tips are displayed to users helping them use both the product and the service. The tip of the day is generated by the ente ⁇ rise spatial system, and a new tip is displayed each time the use refreshes the browser.
  • Industry News is an area on the page where news and events particular to the industry that the user and company operate in are displayed, hi certain implementations, industry content is served via third parties tied to the portal vendor. For example, news information from Reuters about the Oil and Gas industry may be displayed.
  • Company News is an area set aside for the company to be able to communicate directly to staff.
  • the company is responsible for this content, but this may also require additional help on the ente ⁇ rise spatial system services side.
  • Each company assigns someone to author the content that appears in the company news area and that ente ⁇ rise spatial system simply points to their URL from within the portal. This makes all management and review of the content the company's responsibility.
  • the Document Files section allows the ente ⁇ rise spatial system to present to the user all the existing projects that the user has been working on, as well as any template/map service files. For most users, this is the fastest way to open a project and to begin working in the ente ⁇ rise spatial system. By default this section is hidden from view. If the user wishes to always see these files, then the user can select to show the files by choosing the appropriate option under the "Customize My Page" section.
  • buttons which access the ente ⁇ rise spatial system service.
  • the size, layout, and type of buttons will vary depending on customers. Also, buttons may be added or removed depending on user feedback and relevancy. For example, a button could say, "Click Here to Create Your First Map", or Click Here to Buy Data etc.
  • a main UI screen is the starting point for any task that the user may wish to undertake, providing the user with the core capabilities requhed in undertaking any process supported by the application, including: selecting an Area of Interest (AOI); previewing an Area of Interest; selecting base imagery; selecting data layers; and accessing summary information.
  • AOI Area of Interest
  • the main UI screen provides access to the functionality through various tools in a toolbar, through the drop down menus, and through links to other UI screens.
  • FIG. 71 illustrates a main UI screen 7110 in accordance with certain implementations of the invention.
  • FIG. 72A illustrates a find location portion 7210 of the UI screen in accordance with certain implementations of the invention.
  • the Search by drop down box contains a list of Search Categories that are supported by the ente ⁇ rise spatial system, presented to the user, and including, for example: Address, City, County, State, ZIP Code, Longitude / Latitude, USGS Map, Name of Place, and Previously Saved Area. Selection of one of the drop down list items is requhed, the drop down box is always available to the user, and the control has the initial focus when the user goes to the main UI screen.
  • the second control (or group of controls) in the find location portion of the main UI screen appear dynamically (and may be referred to as dynamic controls), based upon the user selection in the Search by drop down box.
  • the dynamic control(s) appear in a dynamic control window, and are updated each time that a user makes a selection from the Search by drop down box.
  • FIG. 72B illustrates a dynamic control window 7212 in accordance with certain implementations of the invention.
  • the dynamic control window is where various controls are populated based upon the user's selection in the Search by drop down. This control is not visible to the user.
  • the window is located directly below the Search by drop down. The size of the window is sufficient to accommodate all of the dynamic controls described herein.
  • FIG. 72C illustrates address controls 7214 in accordance with certain implementations of the invention.
  • the address controls 7214 include, for example, the following attributes: the text reads "Street, City:” and the address controls 7214 consist of two separate controls, with the first control being an edit box and the second control being a drop down control.
  • the second control includes, for example, the following attributes: text reads "State:”; display length of the edit box is 2 characters; the drop down list contains a full list of abbreviates for states; and, this field is available to the user only when the user has selected "State" from the Search by drop down box. When the drop down list is available, selection of one of the state abbreviations is required.
  • FIG. 72D illustrates a city edit box 7215 in accordance with certain implementations of the invention. This field is available to the user only when the user has selected "City" from the Search by drop down box. When this field is available, this field is a required field.
  • the city edit box 7215 Is used in conjunction with a Go button.
  • FIG. 72E illustrates a county edit box 7216 in accordance with certain implementations of the invention. This field is available to the user only when the user has selected "County" from the Search by drop down box. When this field is available, this field is a required field.
  • the county edit box 7216 Is used in conjunction with the Go button.
  • FIG. 72F illustrates a state drop down box 7218 in accordance with certain implementations of the invention. This field is available to the user only when the user has selected "State" from the Search by drop down box. When this drop down is available, selection of one of the state abbreviations is requhed.
  • FIG. 72G illustrates ZIP code edit boxes 7220 in accordance with certain implementations of the invention.
  • the Zip code edit boxes consist of 2 separate edit boxes.
  • the first edit box has, for example, the following attributes: this field is available to the user only when the user has selected "ZIP Code" from the Search by drop down box and when this field is available, this field is a requhed field.
  • the second edit box has, for example, the following attributes: this field is available to the user only when the user has selected "ZIP Code" from the Search by drop down box and this field is not a required field.
  • FIG. 72H illustrates longitude / latitude edit boxes 7222 in accordance with certain implementations of the invention.
  • the longitude/latitude edit boxes consist of 2 separate edit boxes.
  • the first edit box has, for example, the following attributes: this field is available to the user only when the user has selected "Longitude/Latitude" from the Search by drop down box and, when this field is available, this field is a required field.
  • the second edit box has, for example, the following attributes: when this field is available, this field is a required field. In between the first and second edit boxes, "Lat:" is displayed. These controls are used in conjunction with the Go button. [0425]
  • FIG. 721 illustrates a USGS drop down 7224 in accordance with certain implementations of the invention.
  • the USGS drop down 7224 includes, for example, the following attributes: text reads "USGS Map:*"; display length of the drop box is 25 characters; the drop down list contains the complete list of USGS Maps that are available; this field is available to the user only when the user has selected "USGS Map" from the Search by drop down box; when this drop down control is available, selection of one of the maps is required.
  • FIG. 72 J illustrates a name of place edit box 7226 in accordance with certain implementations of the invention.
  • the name of place edit box 7226 includes, for example, the following attributes: this field is available to the user only when the user has selected "Name of Place" from the Search by drop down box; when this field is available, this field is a required field; this field is used in conjunction with the Go button.
  • FIG. 72K illustrates a previously saved area edit box 7228 in accordance with certain implementations of the invention.
  • the previously saved edit box includes, for example, the following attributes: this field is available to the user only when the user has selected "Name of Place” from the Search by drop down box; when this field is available, this field is a requhed field; and the field can be completed by typing in a path and file name, or by browsing to select the file.
  • the Go button's attributes are standard for control buttons, except that the width of the Go button is 38 pixels.
  • the button text reads, "Go »".
  • As for the Browse button all of the Go button's attributes are standard for control buttons, except that the width of the Browse button is 57 pixels.
  • the button text reads, "Browse".
  • the Area of Interest that the user is attempting to define is determined by checking for a match to the address location provided. If a single match is found, then the center point of the AOI is the street address location. The AOI is defined by the smallest square that envelops a 2 mile buffered area around the street address. If no exact matches are found, but multiple possible matches have been found, then the Ambiguous Location pop up dialog box is displayed.
  • FIG. 73 illustrates an Ambiguous Location pop up dialog box 7310 without a scroll bar and
  • FIG. 74 illustrates an Ambiguous Location pop up dialog box 7410 with a scroll bar in accordance with certain implementations of the invention.
  • the Area of Interest location is defined by the state provided, with the minimum size required to envelop the entire state. A pop up error message appears, with text reading, "The location entered could not be found. The map has been centered on the state provided.”. [0431] If a location is determined, the map for the specified location is retrieved. If not, then the Area of Interest location is defined by the state provided, with the minimum size required to envelop the entire state. The Map window is refreshed with the map. [0432] If the user selects "City" from the Search by drop down box, the City edit box is presented and the Go button is made available. If the user selects the Go button, a check is made to determine whether input has been provided into the City edit box. If yes, processing continues.
  • the Area of Interest that the user is attempting to define is determined by checking for a match to the city location provided. If a single match is found, then the AOI is defined by the smallest square that envelops the entire city. If no exact matches are found, but multiple possible matches have been found, then the Ambiguous Location pop up dialog box is displayed. If no possible matches are found, a pop up error message appears, with text reading, "The location entered could not be found with the information provided. Please try again.”. If a location is detennined, the map for the specified location is retrieved. The Map window is refreshed with the map.
  • the Area of interest that the user is attempting to define is determined by checking for a match to the county location provided. If a single match is found, then the AOI is defined by the smallest square that envelops the entire county. If no exact matches are found, but multiple possible matches have been found, then the Ambiguous Location pop up dialog box is displayed. If no possible matches are found, a pop up error message appears, with text reading, "The location entered could not be found with the information provided. Please try again.”. [0437] If a location is determined, the map for the specified location is retrieved. The Map window is refreshed with the map.
  • the AOI can be defined by the smallest square that envelops the entire ZIP Code (ZIP + 4). If no, the AOI for the ZIP 5 is used and an error message is not shown to the user. The map for the specified AOI is retrieved. The Map window is refreshed with the map. [0443] If the user selects "Longitude / Latitude" from the Search by drop down box, the Longitude / Latitude edit boxes are presented. The Go button is made available. If the user selects the Go button, a check is made to determine whether input has been provided into both edit boxes. If yes, processing continues. If no, a pop up message appears with the message, "You must enter both the Longitude and the Latitude before the search can begin.”
  • a check is made to determine whether the format of both the Longitude and the Latitude that the user input is correct. A check is made to determine whether the first character in both edit boxes is either a numeric value, a "-" sign, or a "+” sign. A check is made to determine whether exactly one ".” character appears within the input in both edit boxes. A check is made to determine whether exactly 4 numeric values appear after the ".” character. A check is made to determine whether at least 7 characters have been entered. A check is made to determine whether a maximum of 9 characters have been entered. A check is made to determine whether both entries are within the valid range of Longitude and latitude entries. If all of these checks hold true, then processing continues.
  • the center point of the AOI is the Longitude and Latitude location that the user has provided.
  • the AOI is defined by the smallest square that envelops a 5 mile buffered area around this center point.
  • the map for the specified AOI is retrieved.
  • the Map window is refreshed with the map.
  • the Previously Saved Area edit box is presented.
  • the Browse button is presented, to the right of the Previously Saved Area edit box.
  • the right edge of the Browse button is right aligned with the right edge of the Search by drop down. If the cursor is the in the Previously Saved Area edit box and the user selects the enter key (i.e. indicating that the user has entered the file name), a check is made to determine whether a valid file name (for an ente ⁇ rise spatial system AOI file) have been entered. If yes, the AOI file is opened, and the Map window is refreshed with the new AOI.
  • FIG. 75 illustrates a Base Image Conflict pop up dialog box 7510 in accordance with certain implementations of the invention. If the user selects to change the AOI, then the Map window is refreshed with the new AOI and reversion to "none" as the Base Image selection is done. If the user chooses to keep the Base Image, the AOI is not updated. If the Base Image is available, the Map window is refreshed with the new AOI.
  • the Ambiguous Location pop up dialog box 7310 is used when multiple possible location matches are found using the information that the user has input into the Find Location by Address, Find Location by City, or Find Location by County controls. This UI screen allows the user to select from the list of possible locations, providing the ente ⁇ rise spatial system with the user's intended Area of interest.
  • the Ambiguous Location pop up dialog box 7310 meets the standard guidelines for the use of pop up dialog boxes. The pop up is a large pop up dialog box. The pop up appears centered in the work area of the main ente ⁇ rise spatial system software. For the Title, text reads, "Ambiguous Location" and font is bold. The introductory text for this pop up dialog box is: "The location provided has the following close matches. Please select one.”
  • the Grid Control has standard grid control attributes.
  • the Grid Control is left aligned with both the section title and the introductory text, is located immediately following the introductory text display, consists of two columns (a select column and a location column), and has grid rows.
  • the column header reads, "Select”; the column width is sufficient to fit the text "Select” with a blank space before and after the text; and, the column contains radio button controls, allowing the user to select only one of the locations that are presented in the grid display. If the user selects a second radio button, then the first radio button that was selected becomes deselected.
  • the header for this column reads, "Location"; the width of this column is approximately 385 pixels; and, the cells within this column is populated with the various possible location matches that the ente ⁇ rise spatial system found.
  • the cell contains the street address, city, and state for the possible match.
  • the cell displays the city, county and state for the possible match.
  • the cell will display the county and state for the possible match.
  • the cell will display the place name, the county and state for the possible match.
  • Grid Rows there are as many rows included in the grid display as potential location matches that were found; the row height is determined by the number of lines of data that are displayed in a given row; and, if the number of rows exceeds the number that can be displayed within the work area of the pop up dialog box, then a scroll bar will allow for scrolling of the grid control as shown in FIG. 74.
  • the OK button if the user selects the OK button, a check is made to determine whether the user has selected one of the radio buttons from within the grid control. If a radio button was not selected, an error message is pushed to the top of the pop up, with text reading, "You need to provide the best fit location for your area of Interest (AOI).
  • the user's selected location choice is determined by finding the radio button that was selected, and then finding the location associated with that radio button.
  • the selected location is used to define the Area of Interest. If the ambiguous location is an address, the center point of the AOI is the sheet address location. The AOI is defined by the smallest square that envelops a 2 mile buffered area around the street address. If the ambiguous location is a city, the AOI is defined by the smallest square that envelops the entire city. If the ambiguous location is a county, the AOI is defined by the smallest square that envelops the enthe county.
  • the center point of the AOI is the location of the place that the user has provided.
  • the AOI is defined by the smallest square that envelops a 5 mile buffered area around this center point.
  • the pop up dialog box is closed.
  • the Map window is refreshed with the new AOI on the UI screen from which the Ambiguous Location pop up was launched. [0459] If the user selects the cancel button, the pop up dialog box is closed.
  • the ambiguous location is an address
  • the Area of Interest location is defined by the state provided, with the minimum size requhed to envelop the enthe state.
  • a pop up error message appears, with text reading, "An address was not selected.
  • the map has been 8296
  • the Map window is refreshed with the new AOI. If the ambiguous location is a city, county, or place, the Area of Interest cannot be determined. A pop up error message appears, with text reading, "The location entered could not be found with the information provided. Please try again.”.
  • the Base Image Conflict pop up dialog box 7510 illustrated in FIG. 75 is used whenever the user has indicated a desire to change the AOI, but the new AOI does not support the Base Image. This dialog box allows the user to decide whether to change the AOI (and lose the Base Image) or keep the Base Image (and lose the changes to the AOI). [0461] In FIG. 75, the pop up dialog box meets the standard guidelines for the use of pop up dialog boxes.
  • the pop up is a small Pop up dialog box.
  • the pop up appears centered in the work area of the main ente ⁇ rise spatial system software.
  • Radio buttons present the user with options on how to proceed, given the conflict.
  • the radio buttons are standard in functionality.
  • the list of button choices includes, for example: Yes, change the AOI; and, No, do not change the AOI.
  • the default selection is Yes, change the AOI.
  • the text descriptions are located below the radio button graphic.
  • the Ok button has standard control button attributes and the button text reads, "Ok".
  • FIG. 75 if the user selects the help button, the help page that provides online help pertaining to this UI screen appears in a pop up format.
  • the pop up is closed.
  • the AOI is updated according to the command that originally invoked this dialog box.
  • the Map window is refreshed. Reversion to "none" as the Base Image type is performed. If the "No, do not change the AOI" radio button is selected, the pop up is closed and the AOI is not updated in the manner that invoked this dialog box.
  • FIG. 76 illustrates an Open AOI File dialog box 7610 in accordance with certain implementations of the invention.
  • the pop up dialog box meets the standard guidelines for the use of pop up dialog boxes.
  • the pop up is custom sized.
  • the width is 760 pixels
  • the height is 440 pixels.
  • the pop up appears centered in the work area of the main ente ⁇ rise spatial system software.
  • the Open File Control Frame uses standard control frame properties.
  • the frame header reads "Open Area of Interest File”.
  • the introductory text reads "Please select the area of Interest (AOI) file that you would like to use for your search from the list below.”
  • the Document Grid Control consists of 4 columns.
  • the column header reads: "AOI Name”, and this column displays the hyperlinked name of existing Areas of Interest that are available to the user.
  • the column header reads "Author” and this column displays the full name of the author of the project.
  • the column header reads "Description” and this column displays any annotated description of the project.
  • the column header reads "Modified Date” and this column displays the date when the document was last modified. This grid is scrollable.
  • FIG. 77 illustrates a Select Base Image portion 7710 of the main UI screen in accordance with certain implementations of the invention.
  • This portion of the Main UI screen allows users to select the base map to be used.
  • the base image coverage offered by the ente ⁇ rise spatial system varies depending upon the AOL so the Base Image controls are linked to the AOI provided by the user.
  • the ente ⁇ rise spatial system software determines which base maps are available for the specified AOI, and only those images are available as options for selection. Before the user ever selects a base image from the base image drop down control, a default map graphic is displayed within the Map window.
  • the listing within the drop down is dynamic, and is directly impacted by the Area of Interest that the customer has selected on Online Mapping UI screens. All of the base maps that are available for the user's enthe AOI are available as selections. Those base maps that are not available for the user's enthe AOI are not available as selections. "None" is an available selection and is the default selection. Selection of the "None” option leaves a vector based map representation as the base layer. This field is always available to the user. Selection of one of the Base Image maps is not required.
  • FIG. 77 upon selection of the down arrow on the drop down box, the ente ⁇ rise spatial system software checks for which base images are available for the current AOI. A list of these base images appear in the drop down list. If the user selects one of the available options from the Base Image drop down box, the desired base map as indicated by the user's selection is retrieved. The portion of the base map that is defined by the location of the user's Area of Interest is displayed within the Map window.
  • FIG. 78 illustrates a Data Layers UI screen 7810 in accordance with certain implementations of the invention.
  • the Data Layers UI screen 7810 allows users to select one or more data layers to layer on top of the base map.
  • the ente ⁇ rise spatial system software will determine which layers are available for overlay. Only those data layers are available as options within this control. [0472]
  • customer data depending upon who the ente ⁇ rise spatial system customer (e.g., partner) is, the customer may be allowed to add co ⁇ orate GIS data into the ente ⁇ rise spatial system.
  • the ente ⁇ rise spatial system provides, in certain implementations, a technique by which the data may be brought into the back end. In certain implementations, data is input into the ente ⁇ rise spatial system using other techniques.
  • a user interface that automates the process of integrating ente ⁇ rise data and that allows the user to upload data from their system directly into the ente ⁇ rise spatial system back end is provided.
  • the ente ⁇ rise spatial system provides secure access to the ente ⁇ rise data.
  • the data that co ⁇ orations will provide is often highly sensitive, and the ente ⁇ rise spatial system ensures that only those who should have access to the data get access to it.
  • the ente ⁇ rise spatial system also integrates the selection of the ente ⁇ rise data layers into the ente ⁇ rise spatial system user interface. Ente ⁇ rise data layers appear in the same area as ente ⁇ rise spatial system data layers. However, when ente ⁇ rise data layers are present, an additional tab category will exist that contains the ente ⁇ rise data.
  • FIG. 79 illustrates custom tab navigation control 7910 in accordance with certain implementations of the invention.
  • the custom tab navigation control is part of the Data Layers UI screen 7810.
  • the Data Layers section of the Main UI screen provides the user with a selection of available data layers for selection. Since there may be many data layers to choose from within the ente ⁇ rise spatial system software, and limited space to display these layers to the user, the layers may be organized into smaller categories. Custom tab controls are used to allow the user to view the data layers one category at a time, in order to minimize scrolling to see the layers.
  • a Show all categories tab is the first tab available, is selected by default, and has a title area with "Tab Selection: Show All Data Layers". The tool tip for this tab reads: "All Data Categories”.
  • a Ente ⁇ rise data tab (not shown in FIG. 79) is available if the co ⁇ orate customer has arranged with the ente ⁇ rise spatial system to integrate their own data with the ente ⁇ rise spatial system's data. When available, this tab appears immediately to the right of the Show all categories tab. The title to appear in this tab's title area is "Tab Selection: ⁇ insert title provided by co ⁇ oration>". The tool tip for this tab reads, " ⁇ insert tip provided by the partner>".
  • a Transportation tab For a Transportation tab, the location of this tab depends upon whether or not a ente ⁇ rise data tab is present. If a ente ⁇ rise data tab is present, then this tab appears immediately to the right of the ente ⁇ rise data tab. If a ente ⁇ rise data tab is not present, then this tab appears immediately to the right of the Show all categories tab. The title to appear in this tab's title area is "Tab Selection: Transportation”. The tool tip for this tab reads, "Transportation".
  • a Water tab appears immediately to the right of the Demographics tab.
  • the title to appear in this tab's title area is "Tab Selection: Water Data”.
  • the tool tip for this tab reads, "Water Data”.
  • An Edit Favorites hyperlink has standard hyperlink attributes. The hyperlink is located to the right of the title within the Favorites tab, and button text reads, "Edit Favorites”. T U 03/08296
  • a View Selected Layers hyperlink has standard hyperlink attributes, and button text reads, "View Selected Layers”.
  • a Data Layer check boxes control group consists of multiple check box controls. Each check box control corresponds to a data layer that is available for selection by the user. These check boxes are standard in functionality. The listing of the check boxes is dynamic, and is directly impacted by the Area of Interest that the customer has selected and the base map that the user has selected.
  • the data layers shall consist of vector-based graphics. All of the data layers that are available for the user's enthe AOI and for the selected base map are available as check box selections. Those data layers that are not available for the user's enthe AOI are not available as check boxes and are grayed out. Those data layers that are not available for the user's base map are not available as check boxes and are grayed out.
  • the check boxes are organized on the UI screen as follows: the check box controls are organized into main categories of data layer types. These categories are provided below. Each category has a one-to-one correspondence with a tab in the custom tab control. All categories of data layers are displayed within the All Layers tab. Within each tab, the check boxes are arranged into a single column. The location of the column is as follows: left justified and indented approximately 5 pixels from the left edge of the tab control window, hi the "All Layers" tab, check box controls begin immediately beneath the appropriate functional area title text, hi all other tabs, check box controls appear such that the top edge of the first check box is approximately 5 pixels from the top of the custom tab window. Standard spacing is provided between each check box.
  • check boxes are selected by default. Each check box has a graphic next to it that displays the legend symbol for the data layer.
  • FIG. 80 illustrates a UI screen 8010 after the Show all categories tab has been selected in accordance with certain implementations of the invention.
  • FIG. 80 illustrates a UI screen 8010 after the Show all categories tab has been selected in accordance with certain implementations of the invention.
  • this tab becomes active, the tab title is displayed, and the tab window is filled with the check box controls for all of the data layers that are available within the Transportation category, such as: Geocoded Interstate, US and state highways, arterial roads, light duty roads, alleys, unpaved roads, railroads that allow address searches and routing requests; and, afrports, raihoad and bus stations, highway interchanges, and ferry terminals. Those data layers that are not available for the user's AOI will not be available as check boxes and are grayed out.
  • this tab becomes active, the tab title is displayed, and the tab window is filled with the check box controls for all of the data layers that are available within the Landmark category, such as: National, state, regional and local parks; and, ahports, raihoad and bus stations, highway interchanges, ferry terminals, major buildings, town centers, city halls, public libraries, convention centers, observatories, colleges, universities, monuments, memorials, shopping centers, golf courses, amusement parks, fairgrounds, ski resorts, horse and auto racetracks, stadiums, museums, halls, auditoriums, zoos, aquariums, and city centers.
  • Those data layers that are not available for the use s AOI will not be available as check boxes and are grayed out.
  • this tab becomes active, the tab title is displayed, and the tab window is filled with the check box controls for all of the data layers that are available within the Boundaries category, such as: boundaries of counties in conterminous US, county and state codes, county names and area; boundaries of metropolitan areas with area and population; 104th, 105th and 106th Congressional District boundaries; and Zip + 4 boundaries for conterminous US. Those data layers that are not available for the user's AOI will not be available as check boxes and are grayed out.
  • this tab becomes active, the tab title is displayed, and the tab window is filled with the check box controls for all of the data layers that are available within the Demographics category, such as: 1990 and 2000 US Census data including demographic information and census tract boundaries; and, boundaries of mehopolitan areas with area and population. Those data layers that are not available for the user's AOI will not be available as check boxes and are grayed out.
  • this tab becomes active, the tab title is displayed, the tab window is filled with the check box confrols for all of the data layers that are available within the Water category, such as: navigable waterways of the conterminous US; major dams and associated lakes; wetland boundaries and classifications; vector representations of rivers and streams; 100 yr and 500 yr flood plain boundaries; and, hydrologic units for major rivers and tributaries. Those data layers that are not available for the user's AOI will not be available as check boxes and are grayed out.
  • this tab becomes active, the tab title is displayed, and the tab window is filled with the check box controls for all of the data layers that are available within the Infrastructure category, such as: major pipelines, transmission lines and facilities; and, major dams and associated lakes. Those data layers that are not available for the user's AOI will not be available as check boxes and are grayed out.
  • the Custom Tab window has the following message displayed within it, which reads, "You do not currently have any data layers in your "Favorites” list. To create a Favorites list, select the Edit Favorites link above". The message is center justified within the entire tab window. [0498] If the user selects a check box control (within any tab), and, if the checkbox was previously unselected, the checkbox becomes selected, and the data layer becomes part of the user's map. The data layer associated with the check box is layered into the map.
  • the order of display, or "layer order" takes into consideration two rules for the layering of data. First, the layering of data in general is in the following order: Imagery, Polygons, Lines, and Points. Second, if another element aheady exists in the 03 08296
  • map for the group to which the data layer belongs this data layer is placed immediately on top of the top most layer currently in that group.
  • the checkbox becomes deselected, and the data layer is removed as part of the user's map.
  • the data layer associated with the check box is removed from the map.
  • the Map window is refreshed, which removes the display of the deselected data layer, while retaining all of the other elements that were previously present.
  • the user has the ability to edit the legend representation for the data overlaid within the ente ⁇ rise spatial system, whether it be point, line, or polygon data.
  • FIG. 81 illustrates a symbol picker UI screen 8110 in accordance with certain implementations of the invention.
  • the ente ⁇ rise spatial system classifies the line into one of two categories, either a single line or a double line (with a lined border around it). If the line is a single line, the line Color Picker pop dialog box is launched.
  • FIG. 82 A illustrates a line Color Picker pop dialog box 8210 in accordance with certain implementations of the invention. If the line is a double line, a modified version of the line Color Picker pop dialog box is launched.
  • FIG. 82B illustrates a modified line Color Picker pop dialog box 8212 in accordance with certain implementations of the invention.
  • the introductory text reads, "Choose an inside and outside line color from the selection below".
  • another group of color blocks is present to allow the user to select the color for the outside line. This group of color blocks includes, for example, 36 blocks, and the colors are defined by the 216 web safe color palette.
  • FIG. 82C illustrates a modified version of the line Color Picker pop dialog box 8214 in accordance with certain implementations of the invention, h FIG. 82C, the introductory text reads, "Select a color and fill pattern from the options below.”.
  • another group of color blocks is present to allow the user to select a pattern fill. The selected color in the first block defines the fill color for the polygon.
  • FIG. 83 illustrates a Change Data Layer Order pop dialog box 8310 in accordance with certain implementations of the invention.
  • the Change Data Layer Order pop up dialog box 8310 is used whenever a user has indicated a desire to rearrange the order of the data layers.
  • the pu ⁇ ose of this dialog box 8310 is twofold: to provide an interface that allows the user to quickly see which data layers have been selected and to allow the user to define in what order the data layers are displayed.
  • the Change Data Layer Order pop up dialog box 8310 meets the standard guidelines for the use of pop up dialog boxes and is a small Pop up dialog box. The pop up appears centered in the work area of the main ente ⁇ rise spatial system software.
  • the Data Layer list box control 8312 consists of three elements, including a list box and two buttons.
  • the Data Layer list box control 8312 displays all of the data layers that are currently active.
  • the order that the data layers are displayed within the Data Layer list box control 8312 is as follows: the lowest data layer is displayed at the bottom of the list, the highest data layer is displayed at the top of the list, and those data layers in between shall continue in order from lowest display to highest display level.
  • the list box control allows for the selection of one item (e.g., the control and shift functionality for selection is disabled). The first item in the list is selected by default. [0509] In FIG.
  • the Up Arrow button all of the Up Arrow button's attributes are standard for control buttons, except for the following: the image width for the Up button is 31 pixels wide and the button shall not have text, rather it has a graphic of an arrow pointed upward.
  • the image width for the Up button is 31 pixels wide and the button shall not have text, rather it has a graphic of an arrow pointed downward.
  • the item shall show a visual indication (e.g., highlight) designating that it is the item currently selected.
  • the item that was previously selected becomes deselected.
  • the selected data layer can now be used with the up arrow, the down arrow, and with click-and-drag functionality.
  • the up arrow button for a selected data layer, and if the selected data layer is not currently the top item in the display order, the selected item will move one level up in the list, the selected data layer will move one level up in the display order (although the refresh will not occur until the pop up window is closed), and the selected item will remain selected. If the selected data layer is currently the top item in the display order, selection of the up arrow button has no effect on the display order.
  • FIG. 84 illustrates an Edit Favorites pop up dialog box 8410 in accordance with certain implementations of the invention.
  • the Edit Favorites pop up dialog box 8410 is used whenever a user wants to edit a data layer favorites list to appear within the Favorites tab.
  • the Edit Favorites pop up dialog box 8410 provides the interface requhed to create the Favorites list.
  • the Edit Favorites pop up dialog box 8410 meets the standard guidelines for the use of pop up dialog boxes and is a small pop up dialog box. The pop up appears centered in the work area of the main ente ⁇ rise spatial system software. [0519] In FIG.
  • Data Layer check box controls 8412 form a control group that consists of multiple check box controls. Each check box control corresponds to a data layer that is available for selection by the user. These check boxes are standard in functionality.
  • the check boxes are displayed grouped into categories. Each category has a one-to-one correspondence with a tab in the custom tab control. The beginning of a new category grouping is designated as follows: the title of the category appears; the font is bold; and, dash marks appears after the title to continue all of the way to the rightmost edge of the Custom Tab window.
  • the check boxes appear after their respective category title. A new category display appears immediately after the end of the previous one.
  • the text prompt for each check box control fits within the limited column space provided. Abbreviations are used, if necessary.
  • a scroll bar allows for the scrolling of the checkbox controls, and other elements do not scroll.
  • the checkbox becomes selected, and the data layer associated with the check box becomes part of the user's Favorite List. This will add the data layer to the display of available data layers for selection within the Favorites tab. The selected data layer appears in alphabetical order on the Favorites list.
  • the checkbox becomes deselected, and the data layer is removed from the Favorites list.
  • the help page that provides online help pertaining to this UI screen 8410 appears in a pop up format. If the user selects the Ok button, the pop up dialog box is closed, and the Favorites list is updated. If the user selects the cancel button, the pop up dialog box is closed, without affecting the Favorites list.
  • FIG. 85 illustrates a Change Detection pop up dialog box 8510 in accordance with certain implementations of the invention.
  • This Change Detection pop up dialog box 8510 is used whenever a user selects a change detection type of data layer.
  • the pu ⁇ ose of this UI screen 8510 is to determine the date range over which the user would like the change detection to be applied.
  • the pop up dialog box 8510 meets the standard guidelines for the use of pop up dialog boxes and is a small pop up dialog box.
  • the pop up dialog box 8510 appears centered in the work area of the main ente ⁇ rise spatial system software.
  • a prompt reads "Show changes:”.
  • the help page that provides online help pertaining to this UI screen appears in a pop up format.
  • the user selects the Ok button, if either of the date range drop downs have not been selected, an error message is pushed to the top of the pop up work area, with text reading "You must select both a starting and ending year to use the selected data set. Select the date range and try again, or select cancel to cancel the data set.”.
  • the OK button is selected and the user has selected the date range, a data layer is retrieved based upon the date range given and the pop up dialog box is closed. The Map widow is refreshed, displaying the selected data layer in addition to the other elements that were previously present.
  • the order of display, or "layer order" takes into consideration two rules for the layering of data: first, the layering of data in general is in the following 8296
  • FIG. 86 illustrates a Mapping and Analysis portion 8610 of the main UI screen in accordance with certain implementations of the invention.
  • FIG. 87 illustrates a Map window 8710 in accordance with certam implementations of the invention.
  • the Map window is a custom control whose function is twofold: display map graphics within the window and scale the map appropriately to fit in the window, without distorting any of the proportions.
  • the map is cropped appropriately to fit in the window, without distorting any of the proportions.
  • the graphic formats that are supported for display within the Map window include, for example, GIF and JPEG.
  • Map window is located immediately within the map frame. The location of the Map window is fixed - the user has no ability to move the window. Whenever a map image is being loaded into the Map window: the previous image shall remain displayed until the new image is ready; and, an animated GIF will indicate to the user that the map is loading. This file is centered within the Map window. The GIF file is provided to development. The user will not be able to undertake any other actions while the map is loading. If the user attempts to undertake another task while a map is loading, a pop up message appears reading, "You will need to wait for the requested map to load before you can begin another task. Please wait for the map to load and try again".
  • FIG. 88 illustrates a map frame 8810 in accordance with certain implementations of the invention.
  • the ente ⁇ rise spatial system supports pan functionality to allow the user to re-define the AOI for the current map.
  • the pan functionality is provided in the double arrows on all sides and comers of the map frame. Upon a mouse-over of any of the double arrows, the cursor shall indicate that the area is selectable by the user.
  • the map will pan to the left in the amount of 50% of the width of the map.
  • the map will pan to the top in the amount of 50%) of the height of the map.
  • the map When the arrows on the left side of the frame are selected, the map will pan to the left in the amount of 50% of the width of the map. When the arrows on the bottom side of the frame are selected, the map will pan to the bottom in the amount of 50% of the height of the map. When the arrows on the upper left comer of the frame are selected, the map will pan to the left in the amount of 50% of the width of the map and will pan to the top in the amount of 50% of the height of the frame. When the arrows on the upper right comer of the frame are selected, the map will pan to the right in the amount of 50% of the width of the map and will pan to the top in the amount of 50% of the height of the frame.
  • the map When the arrows on the lower left comer of the frame are selected, the map will pan to the left in the amount of 50% of the width of the map and will pan to the bottom in the amount of 50% of the height of the frame. When the arrows on the lower right comer of the frame are selected, the map will pan to the right in the amount of 50% of the width of the map and will pan to the bottom in the amount of 50% of the height of the frame.
  • the bottom side of the frame is wider in order that it can provide area to display information pertaining to the map currently within the frame.
  • Two areas shall exist to display information: one area is to the left of the pan down arrows and another area is to the right of the of the pan down areas.
  • the scale and resolution information is displayed within these areas.
  • the information that can be displayed within these area mcludes, for example: Scale, Coordinates, and Resolution. The user can select up to 2 of these types of information to display in Preferences.
  • the docking bar is located immediately above the map frame and the reference map. This docking bar is where various elements within the ente ⁇ rise spatial system software are docked.
  • FIG. 89 illustrates a docking bar 8910 in accordance with certain implementations of the invention.
  • the UI elements that are docked in the docking bar include, for example: the toolbar, the attribute bar, and the prompt bar.
  • the toolbar is the primary element docked in the docking bar, and is therefore located to the far left of the docking bar.
  • the attribute bar contains controls that allow the user to define the attributes and settings for various tools within the ente ⁇ rise spatial system software. The attribute bar is not always present, but when it is, it is located immediately to the right of the toolbar.
  • the prompt bar contains a prompt for the tool that is currently selected on the toolbar. If the attribute bar is present, the prompt bar appears immediately to the right of the attribute bar. If the attribute bar is not present, the prompt bar appears immediately to the right of the toolbar.
  • FIG. 90 illustrates a docking bar 9010 with a toolbar, attributes bar, and prompt bar in accordance with certain implementations of the invention.
  • the docking bar shall utilize an expansion docking bar.
  • a down arrow button indicates to the user that more information can be displayed within the expansion docking bar. Selection of the down arrow button will expose the expansion docking bar, with the appropriate elements docked.
  • FIG. 91 illustrates expansion docking 9110 in accordance with certain implementations of the invention.
  • FIG. 92 A illustrates a Toolbar 9210 in accordance with certain implementations of the invention. All of the tools that are used within the ente ⁇ rise spatial system software are located within the "Toolbar". In the case of co-branded ente ⁇ rise spatial system software, additional tools may need to be added to the toolbar. Each tool is represented by a unique icon, which has several states. FIGs. 92B-92E illustrate some states of an icon in accordance with certain implementations of the invention. In the standard state 9212, the tool is a flat, 2D icon. In the rollover state 9214, the tool is beveled. In the hover state 9216, if the mouse hovers for two seconds over the icon, a tool tip appears. In the selected state, the tool is indented.
  • FIG. 92F illustrates expanded tool selection 9220 in accordance with certain implementations of the invention.
  • the expanded tool selection 9220 allows numerous tools to be available to the user without taking an inordinate amount of space.
  • Special icons are present on the toolbar when an expanded tool selection is available.
  • An expanded tool selection appears when the user selects one of the arrow icons. All other characteristics of the expanded tool selection are the same as the standard toolbar.
  • FIG. 92G illustrates an Attributes Bar 9222 in accordance with certain implementations of the invention.
  • the attributes bar contains all of the controls required to define the appropriate tool. Every attribute bar is therefore associated with a specific tool and works in conjunction with that tool. The attribute bar is not available for all tools.
  • FIG. 92H illustrates a Prompt Bar 9224 in accordance with certain implementations of the invention.
  • the prompt bar contains text messages that will guide the user through the use of each of the tools. Every prompt bar is therefore associated with a specific tool. Located within the docking bar, if an attribute bar is present for the selected tool, then the prompt bar is located immediately to the right of the attribute bar. If an attribute bar is not present for the selected tool, then the prompt bar is located immediately to the right of the toolbar. A text window appears within the prompt bar.
  • a Zoom In tool 2230 allows the user to redefine the AOI for the current map.
  • the tool tip for this tool reads, "Zoom In”.
  • the text prompt for this tool reads, "Click on the map or click and drag a specific area to zoom to”. There is no attribute bar associated with this tool.
  • the cursor is displayed as a magnifying glass with a plus sign in the middle (same graphic as is used in the icon).
  • the cursor is displayed as a magnifying glass, the user can click on any point on the map.
  • the AOI is updated as follows: the center point of the AOI is the spot in which the user clicked on the map, and the map scale is zoomed in by 50%.
  • the cursor can be used to "click and drag" a rectangular subsection of the Map window.
  • this is used to define an updated Area of Interest (AOI) for the map.
  • the map AOI is defined as the smallest square that encompasses the entire rectangle selected by the user.
  • a Zoom Out tool 9230 allows the user to redefine the AOI for the current map.
  • the tool tip for this tool reads, "Zoom Out”.
  • the text prompt for this tool reads, "Click on the map to zoom out”. There is no attribute bar associated with this tool.
  • the AOI is updated as follows: the center point of the AOI is the spot in which the user clicked on the map and the map scale is zoomed out by 50%. [0545] A check is made to determine whether or not the updated AOI has support for the base image that is currently selected. If the base image is not available for the new AOI, then the AOI - Base Image Conflict pop up appears. If the user selects to change the AOI, then the Map window is refreshed with the new AOI and reversion to "none" as the Base Image selection is performed. If the user chooses to keep the Base Image, the AOI shall not be updated.
  • the text prompt for this tool reads, "Click and drag to pan the current map". There is no attribute bar associated with this tool.
  • this tool is selected, and when the cursor is passed over the Map window, the cursor is displayed as a hand (same graphic as is used in the icon).
  • the cursor is displayed as a hand, the user can click on any point on the map to "grab" the map at what becomes the "handle point”. While keeping the left mouse button held down, the user can “drag” the map. The user can drag the handle point to any location within the Map window.
  • the AOI is updated as follows: the handle point of the map is located at the point where the user released it, the scale of the map AOI will remain at the same scale as it was before the pan action was P T/US03/08296
  • the bounds of the AOI are defined by the bounds of the Map window at the time that the user releases the handle point.
  • the tool remains available until another tool is selected, or until the user moves to another UI screen.
  • a Previous Extent tool 9234 is only available after the user has redefined the map's AOI is any manner, causing a refresh of the Map window.
  • the tool tip for this tool reads, "Previous Map Extent”.
  • the text prompt for this tool reads, "Click to view the previous map view”. There is no attribute bar associated with this tool.
  • the previous map that was displayed within the Map window becomes the current map and the AOI becomes the AOI associated with the previous map.
  • a check is made to determine whether or not the updated AOI has support for the base image that is currently selected. If the base image is not available for the new AOI, then the AOI - Base Image Conflict pop up appears.
  • the Map window is refreshed with the new AOI and reversion to "none" as the Base Image selection is performed. If the user chooses to keep the Base Image, the AOI shall not be updated. If the Base Image is available, the Map window immediately refreshes, painting the map for the newly defined AOI. [0553] This tool can be used to go back to 20 previous extents. Unlike other tools, this tool does not remain active. If the user wants to use it again, the user has to select 8296
  • a Next Extent tool 9236 is only available after the user has used the previous extent tool.
  • the tool tip for this tool reads, "Next Map Extent”.
  • the text prompt for this tool reads, "Click to view the next map view”. There is no attribute bar associated with this tool.
  • the next map that was displayed within the Map window becomes the current map and the AOI becomes the AOI associated with the next map in the order.
  • a check is made to determine whether or not the updated AOI has support for the base image that is currently selected. If the base image is not available for the new AOL then the AOI - Base Image Conflict pop up appears.
  • the Map window is refreshed with the new AOI and reversion to "none" as the Base Image selection is performed. If the user chooses to keep the Base Image, the AOI shall not be updated. If the Base Image is available, the Map window immediately refreshes, painting the map for the newly defined AOI. If the user uses any means to redefine the AOI other than the next extent tool, the next extent tool will no longer be available. Unlike other tools, this tool does not remain active. If the user wants to use it again, the user has to select it again. Since this tool does not remain active, the tool that was selected previous to its use is the selected tool.
  • a Selection/Move tool 9238 allows the user to select objects for various purposes, including: moving an object, deleting an object, and bringing up details on a Point n' Attribute record.
  • the tool tip for this tool reads, "Select Object”.
  • the text prompt for this tool reads, "Use this tool to move or select objects”. There is no attribute bar associated with this tool.
  • the cursor is displayed as a selection arrow (the selection arrow is different in appearance than the standard cursor arrow).
  • the user can click on any object that has been previously created with the spatial software drawing tools, measurement tool, or Point n' Attribute tool. Upon selecting an object, the object becomes highlighted. At this point, the user has the ability to: elect the delete key to 8296
  • the user When the cursor is moved over the Map window, the user also has the option to use the ⁇ cntrl> key to select multiple drawing objects.
  • the user first holds down the ⁇ cntrl> key. While holding down the ⁇ cntrl> key, the user can select multiple objects by clicking on each of them. When finished, the ⁇ cntrl> key is released. Every drawing object within the selected rectangle area is considered selected, and will therefore be highlighted and can be moved or deleted.
  • a Measure tool 9240 allows users to measure linear or poly-linear distances within the Map window.
  • the linear distance can cover a simple line (e.g., point-to-point) or can cover a polyline (e.g., point-to-point-to-point).
  • the tool tip for this tool reads, "Measure Tool”.
  • the text prompt for this tool reads, "Define line segment(s) for measurement; double-click to end the line”.
  • the Measure attribute bar is associated with this tool, and appears within the docking bar immediately to the right of the toolbar.
  • the cursor is displayed as a crosshair.
  • the user can click on any point on the map.
  • the starting point of the line is established.
  • a crosshair remains on the Map, indicating the starting point.
  • a line segment shall follow the cursor, starting at the previous segment point and ending with the ever-changing location of the mouse cursor.
  • the line is black.
  • the line is 4 pixels in width.
  • the user can define the ending point of the line segment to be measured by clicking the mouse again.
  • a line segment appears, with another crosshair indicating the placement of the segment end point.
  • the linear distance of the line segment is displayed near the segment end point, in a tool tip like window as shown in the graphic below.
  • the background behind the text is white, with a one pixel wide black border.
  • the units of measurement for the display is as set in the attributes bar associated with the measurement tool.
  • the user can continue to select the end points of addition segments as much as the user likes. Each of these segment ends is marked with a crosshair, and is added to the polyline. Upon completion of each additional line segment, the linear distance of the polyline is updated within a tool tip like window. The user can define whether the distance is displayed at every segment end point, or only at the last one. To finish the creation of the polyline, the user needs to double-click. The point of the double-click will mark the end point of the polyline. If the user moves the cursor in the area of one of the segment endpoints (within the area displayed as a crosshair), the cursor display shall change to a selection arrow.
  • FIG. 93 illustrates an example of measure tool use in UI screen 9310 in accordance with certain implementations of the invention.
  • FIGs. 94A-94R illustrate various tools in accordance with certain implementations of the invention.
  • a Point n' View tool 9410 allows the user to view information that is associated with any point on the current map.
  • the tool tip for this tool reads, "Point n' View”.
  • the text prompt for this tool reads, "Click on any data element in the selected layer to view info”.
  • the Active Layer attribute bar is associated with this tool, and appears within the docking bar immediately to the right of the toolbar.
  • This tool is the default selection within the Information Tools Expansion Toolbar. The tool remains available until another tool is selected, or until the user moves to another UI screen.
  • a Global Point n' View tool 9412 allows the user to view information that is associated with any point on the current map.
  • the tool tip for this tool reads, "Global Point n' View” .
  • the text prompt for this tool reads, "Click on any data element in any visible layer to view info”. There is no attribute bar associated with this tool.
  • the cursor behave in the following manner, and when the cursor is passed over the Map window, the cursor is displayed as a selection arrow (the selection arrow is different in appearance than the standard cursor arrow).
  • This tool requires that a display window be available on the UI screen where the tool is used.
  • the user can click on any point on the map for which the user would like additional information.
  • the information available at that location across all of the selected data layers is displayed within the Point n' View pop up. If no data underlies the point that the user selected, a pop up error message appears, stating "There is no data for the selected point. Please try again.”. The tool remains available until another tool is selected, or until the user moves to another UI screen.
  • a Point n' Attribute tool 9414 allows the user to input information that is associated with any point on the current map. In the form of a record added to a "Point n' Attribute data store" that is associated with the current project. The tool tip for this tool reads, “Point n' Attribute”. The text prompt for this tool reads, "Click on 03 08296
  • a Text Drawing tool 9415 allows users to add text messages on top of their maps.
  • the tool tip for this tool reads, "Add Text”.
  • the text prompt for this tool reads, "Click on the map, enter text, and select ⁇ enter>".
  • the Text attribute bar is associated with this tool, and appears within the docking bar immediately to the right of the toolbar.
  • the cursor is displayed as an I-beam.
  • the cursor is displayed as an I-beam, the user can click on any point on the map. Upon clicking the map, a flashing cursor appears at the spot where the user clicked on the map.
  • the attributes of the text are the attributes set as the defaults for the text tool. These attributes can be changed after the text has been added using the Change Object Attributes tool. The default settings for the text attributes can be changed using the Change Object Attributes tool.
  • the user indicates the completion of the text by selecting the ⁇ enter> key. The text stays within the bounds of the Map window, so the text will automatically wrap if it will otherwise extend beyond the right side boundary. Another text object can be added by clicking the I-beam cursor on another location on the map.
  • a Line Drawing tool 9416 allows users to add lines and arrow annotations on top of their maps.
  • the tool tip for this tool reads, "Draw Line”.
  • the text prompt for this tool reads, "Click on the map to define the line's endpoints”.
  • the Line attribute bar is associated with this tool, and appears within the docking bar immediately to the right of the toolbar.
  • the cursor When the cursor is displayed as a crosshair, the user can click on any point on the map. Upon clicking the map, the starting point of the line is established. As the user moves the mouse, a line segment shall follow the cursor, starting at the previous segment point and ending with the ever-changing location of the mouse cursor. The user can define the ending point of the line segment by clicking the mouse again. The line segment appears, with two endpoints.
  • the attributes of the line are the attributes set as the defaults for the line tool. These attributes can be changed after the line has been added using the Change Object Attributes tool. The default settings for the line attributes can be changed using the Change Object Attributes tool.
  • the user is allowed to draw a line that extends beyond the bounds of the currently displayed AOL If the user tries to draw a line beyond the bounds of a map (as indicated by dragging the line segment beyond one of the sides of the Map window), the ente ⁇ rise spatial system software pans in the dhection that the user has moved the cursor to and continue extending the line. For example, the user may want to trace a street that is 10 miles in length. However, in order to see the street with sufficient clarity to trace it, the user zooms in to a level where the user can only see 6 miles of the road. The user begins tracing the sheet, then moves the cursor to where the street meets the edge of the Map window.
  • the map should pan is this direction, allowing the user to continue tracing the street section that was previously out of view with a continuous line segment.
  • Another line object can be added by clicking the crosshair cursor on another location on the map. Once a line has been added, it can be moved or deleted using the Selection VIove tool. The tool remains available until another tool is selected, or until the user moves to another UI screen.
  • a Polyline tool 9418 which is similar to the line tool, allows users to add lines on top of theh maps. However, in the case of polylines, the line can consist of multiple segments.
  • the tool tip for this tool reads, "Draw Polyline”.
  • the text prompt for this tool reads, "Double-click to end the line segments.”.
  • the Line attribute bar is associated with this tool, and appears within the docking bar immediately to the right of the toolbar.
  • the cursor is displayed as a crosshair.
  • the user can click on any point on the map. Upon clicking the map, the starting point of the polyline is established. As the user moves the mouse, a line segment shall follow the cursor, starting at the previous segment point and ending with the ever-changing location of the mouse cursor. The user can define the ending point of the line segment by clicking the mouse again. The line segment appears, with two endpoints. The user can continue to select the end points of addition segments as much as the user likes.
  • the attributes of the polyline are the attributes set as the defaults for the line tool. These attributes can be changed after the polyline has been added using the Change Object Attributes tool. The default settings for the polyline atfributes can be changed using the Change Object Attributes tool. The user is allowed to draw a polyline that extends beyond the bounds of the currently displayed AOI. This should function in the same manner as described in the line drawing tool. Once a line has been added, it can be moved using the Selection VIove Tool The tool remains available until another tool is selected, or until the user moves to another UI screen.
  • a Rectangle Drawing tool 9420 allows users to add squares and rectangles on top of their maps.
  • the tool tip for this tool reads, "Draw Rectangle”.
  • the text prompt for this tool reads, "Click and drag the rectangular area”.
  • the Shape attribute bar is associated with this tool, and appears within the docking bar immediately to the right of the toolbar.
  • the cursor is displayed as a crosshair.
  • the cursor is displayed as a crosshah, it can be used to "click and drag” a rectangular area within the Map window. This rectangular area defines the area of the rectangle object.
  • a preview of the rectangular area is provided as the user is moving the mouse.
  • the ⁇ shift> key has functionality when 8296
  • the rectangle tool is active. If the user holds down the shift key while creating a rectangle as described above, the proportions is constrained so that only squares can be created. The lesser of the x or y distances that the user has dragged the cursor will define the length of the sides of the square.
  • the attributes of the rectangle object are the attributes set as the defaults for the shape objects. These attributes can be changed after the rectangle has been added using the Change Object Attributes tool. The default settings for the rectangle attributes can be changed using the Change Object Atfributes Tool and changing the defaults for all shape objects. The rectangle stays within the bounds of the Map window. This is ensured by the fact that the cursor is not available as a crosshair once the mouse leaves the Map window area.
  • An Ellipse Drawing tool 9422 allows users to add chcles and ellipses on top of their maps.
  • the tool tip for this tool reads, "Draw Ellipse”.
  • the text prompt for this tool reads, "Click and drag the elliptical area”.
  • the Shape attribute bar is associated with this tool, and appears within the docking bar immediately to the right of the toolbar.
  • the cursor When the cursor is displayed as a crosshah, it can be used to "click and drag" an elliptical area within the Map window.
  • This elliptical area defines the area of the ellipse object.
  • a preview of the elliptical area is provided as the user is moving the mouse.
  • the ⁇ shift> key has functionality when the ellipse tool is active. If the user holds down the shift key while creating a ellipse as described above, the proportions is constrained so that only chcles can be created. The lesser of the x or y distances that the user has dragged the cursor will define the diameter of the circle.
  • the attributes of the ellipse object are the attributes set as the defaults for the shape objects. These attributes can be changed after the ellipse has been added using the Change Object Attributes tool. The default settings for the ellipse attributes can be changed using the Change Object Attributes Tool and changing the defaults for all shape objects. The ellipse stays within the bounds of the Map window. This is ensured by the fact that the cursor is not available as a crosshair once the mouse leaves the Map window area. Once an ellipse has been added, it can be moved using the Selection ⁇ Move tool. The tool remains available until another tool is selected, or until the user moves to another UI screen.
  • a Polygon Shape Drawing tool 9424 is similar to the polyline tool, except that upon completion, the points of the line will close to form polygon.
  • the tool tip for this tool reads, "Draw Polygon”.
  • the text prompt for this tool reads, "Click to add polygon points; double-click to end”.
  • the Shape attribute bar is associated with this tool, and appears within the docking bar immediately to the right of the toolbar.
  • the cursor is displayed as a crosshah.
  • the user can click on any point on the map.
  • the starting point of the polyline is established.
  • a line segment shall follow the cursor, starting at the previous segment point and ending with the ever-changing location of the mouse cursor.
  • the user can define the ending point of the line segment by clicking the mouse again.
  • the line segment appears, with two endpoints.
  • the user can continue to select the end points of addition segments as much as the user likes.
  • the user needs to double-click. Upon the user double-click, the polygon will close at the segment endpoint that is closest to the position of the double-click.
  • the attributes of the polygon are the attributes set as the defaults for the shape objects. These attributes can be changed after the polygon has been added using the Change Object Attributes tool. The default settings for the polygon attributes can be changed using the Change Object Attributes tool. The polygon stays within the bounds of the Map window. This is ensured by the fact that the cursor is not available as a crosshah once the mouse leaves the Map window area. Once a polygon has been added, it can be moved using the Selection ⁇ Move tool. The tool remains available until another tool is selected, or until the user moves to another UI screen.
  • a Point Selection tool 9426 allows users to select an area defined by a point, so that the data behind the point (for the active layer) is available for: information analysis, visual analysis, buffering analysis, and Boolean query analysis.
  • info ⁇ nation analysis display of basic information within the Summary window and display of all of the tabular data in the Full Report UI screen is supported.
  • visual analysis upon selection of the point, the data elements (within the active layer) that touch that point are highlighted.
  • buffering analysis after selecting a point, the user can buffer a radial distance off of that point.
  • Boolean query analysis users are able to undertake a Boolean query consisting of up to two Boolean statements.
  • the tool tip for the Point Selection tool 9426 reads, "Select a Point".
  • the text prompt for this tool reads, "Click on a data element in the selected layer”.
  • the Active Layer attribute bar is associated with this tool, and appears within the docking bar immediately to the right of the toolbar.
  • the cursor is displayed as an arrow.
  • the cursor is displayed as an arrow, the user can click on any point on the map. Upon clicking the map, the point is established. After selecting the point, if an Active Layer has been selected, any data element within the active layer that touches the point is highlighted in yellow on the map. The summary information available for that point is displayed within the Summary window. The detailed tabular information on all data elements within the active layer that touch the point is available to the user if the user selects the Full Report button.
  • a Line Selection tool 9428 allows users to select an area defined by a polyline, so that the data behind the polyline (for the active layer) is available for: information analysis, visual analysis, buffering analysis, and Boolean query analysis.
  • information analysis display of basic information within the Summary window and display of all of the tabular data in the Full Report UI screen is supported.
  • visual analysis upon selection of the point, the data elements (within the active layer) that touch that point are highlighted.
  • buffering analysis after selecting a point, the user can buffer a radial distance off of that point.
  • Boolean query analysis users are able to undertake a Boolean query consisting of up to two Boolean statements.
  • the line can consist of one or multiple segments.
  • the tool tip for this tool reads, "Select a Linear Path”.
  • the text prompt for this tool reads, "Select data elements by dragging a line”.
  • the Active Layer attribute bar is associated with this tool, and appears within the docking bar immediately to the right of the toolbar.
  • the cursor is displayed as a crosshah.
  • the user first "selects" the polyline area. When the cursor is displayed as a crosshair, the user can click on any point on the map.
  • the starting point of the polyline is established.
  • a line segment shall follow the cursor, starting at the previous segment point and ending with the ever-changing location of the mouse cursor.
  • the user can define the ending point of the line segment by clicking the mouse again.
  • the line segment appears, with two endpoints.
  • the user can continue to select the end points of addition segments as much as the user likes.
  • the user needs to double-click.
  • the polyline is highlighted in yellow.
  • any data element within the active layer that touches the polyline is highlighted in yellow on the map. The summary information available for that area is displayed within the Summary window.
  • a Rectangle Selection tool 9430 allows users to select an area defined by a rectangle, so that the data behind the rectangle (for the active layer) is available for: information analysis, visual analysis, buffering analysis, and Boolean query analysis.
  • information analysis display of basic information within the Summary window and display of all of the tabular data in the Full Report UI screen is supported.
  • visual analysis upon selection of the point, the data elements (within the active layer) that touch that point are highlighted.
  • Boolean query analysis users are able to undertake a Boolean query consisting of up to two Boolean statements.
  • the tool tip for this tool reads, "Select a Rectangular Area”.
  • the text prompt for this tool reads, "Drag a rectangular area to select data elements in the selected layer”.
  • the Active Layer attribute bar is associated with this tool, and appears within the docking bar immediately to the right of the toolbar.
  • the cursor is displayed as a crosshah, it can be used to "click and drag" a rectangular area within the Map window. This rectangular area defines the area of selection for analysis.
  • a preview of the rectangular area is provided as the user is moving the mouse.
  • the ⁇ shift> key has functionality when the select rectangle tool is active. If the user holds down the shift key while creating a rectangular area as described above, the proportions is constrained so that only squares can be created. The lesser of the x or y distances that the user has dragged the cursor will define the length of the sides of the square.
  • the rectangle is highlighted in yellow. If an Active Layer has been selected, any data element within the active layer that touches the rectangle is highlighted in yellow on the map. The summary information available for that area is displayed within the Summary window. The detailed tabular information on all data elements within the active layer that touch the rectangle is available to the user if the user selects the Full Report button. [0593] If an Active Layer has not been selected, a pop up error message appears, reading ""You must first select an Active Layer before you can select data elements with this tool. The Active Layer defines which layer the ente ⁇ rise spatial system will search on when you make a selection. ⁇ cr> Please select an Active Layer and try again.”.
  • the user can begin selecting additional rectangular areas anytime after the original rectangle is completed. These rectangles is highlighted in yellow as well, and will invoke the same functionality as the original rectangle. The original rectangle will remain on the map until the user chooses to delete it using the Selection Tool or clear it using the clear button. Once a rectangle has been added, it can be moved elsewhere on the map using the Selection tool. The result is the same as if the user deleted the original rectangle and created a new one in the destination location. [0595] This tool is the default selection within the Analysis Tools Expansion Toolbar. The tool remains available until another tool is selected, or until the user moves to another UI screen.
  • An Ellipse Selection tool 9432 allows users to select an area defined by an ellipse, so that the data behind the ellipse (for the active layer) is available for: information analysis, visual analysis, buffering analysis, and Boolean query analysis.
  • information analysis display of basic information within the Summary window and display of all of the tabular data in the Full Report UI screen is supported.
  • visual analysis upon selection of the point, the data elements (within the active layer) that touch that point are highlighted.
  • buffering analysis after selecting a point, the user can buffer a radial distance off of that point.
  • Boolean query analysis users are able to undertake a Boolean query consisting of up to two Boolean statements.
  • the tool tip for this tool reads, "Select an Elliptical Area”.
  • the text prompt for this tool reads, "Drag an elliptical area to select data elements in the selected layer”.
  • the Active Layer attribute bar is associated with this tool, and appears within the docking bar immediately to the right of the toolbar.
  • the cursor When the cursor is displayed as a crosshah, it can be used to "click and drag" an elliptical area within the Map window. This elliptical area defines the area of selection for analysis. A preview of the elliptical area is provided as the user is moving the mouse.
  • the ⁇ shift> key has functionality when the select ellipse tool is active.
  • the proportions is constrained so that only chcles can be created.
  • the lesser of the x or y distances that the user has dragged the cursor will define the height and width of the circle.
  • any data element within the active layer that touches the elliptical area is highlighted in yellow on the map.
  • the summary information available for that area is displayed within the Summary window.
  • the detailed tabular information on all data elements within the active layer that touch the elliptical area is available to the user if the user selects the Full Report button. If an Active Layer has not been selected, a pop up error message appears, reading ""You must first select an Active Layer before you can select data elements with this tool.
  • the Active Layer defines which layer the ente ⁇ rise spatial system will search on when you make a selection. ⁇ cr> Please select an Active Layer and try again.”.
  • the user can begin selecting additional elliptical areas anytime after the original ellipse is completed. These ellipses is highlighted in yellow as well, and will invoke the same functionality as the original ellipse.
  • the original ellipse will remain on the map until the user chooses to delete it using the Selection Tool or clear it using the clear button. Once an ellipse has been added, it can be moved elsewhere on the map using the Selection tool. The result is the same as if the user deleted the original ellipse and created a new one in the destination location. The tool remains available until another tool is selected, or until the user moves to another UI screen.
  • a Polygon Selection tool 9434 allows users to select an area defined by a polygon, so that the data behind the polygon (for the active layer) is available for: information analysis, visual analysis, buffering analysis, and Boolean query analysis.
  • information analysis display of basic information within the Summary window and display of all of the tabular data in the Full Report UI screen is supported.
  • visual analysis upon selection of the point, the data elements (within the active layer) that touch that point are highlighted.
  • buffering analysis after selecting a point, the user can buffer a radial distance off of that point.
  • Boolean query analysis users are able to undertake a Boolean query consisting of up to two Boolean statements.
  • the tool tip for this tool reads, "Select a Polygon Area”.
  • the text prompt for this tool reads, "Define the polygon area that will select data elements in the selected layer”.
  • the Active Layer attribute bar is associated with this tool, and appears within the docking bar immediately to the right of the toolbar.
  • the user first "selects" the polygon area. When the cursor is displayed as a crosshah, the user can click on any point on the map. Upon clicking the map, the starting point of the polygon is established. As the user moves the mouse, a line segment shall follow the cursor, starting at the previous segment point and ending with the ever-changing location of the mouse cursor.
  • the user can define the ending point of the line segment by clicking the mouse again.
  • the line segment appears, with two endpoints.
  • the user can continue to select the end points of addition segments as much as the user likes.
  • the user needs to double-click.
  • the polygon will close at the segment endpoint that is closest to the position of the double-click.
  • the polygon is highlighted in yellow. If an Active Layer has been selected, any data element within the active layer that touches the polygon is highlighted in yellow on the map.
  • the summary information available for that area is displayed within the Summary window.
  • the detailed tabular information on all data elements within the active layer that touch the polygon is available to the user if the user selects the Full Report button.
  • the Active Layer defines which layer the ente ⁇ rise spatial system will search on when you make a selection. ⁇ cr> Please select an Active Layer and try again.”. [0605] The user can begin selecting additional polygon areas anytime after the original polygon is completed. These polygon is highlighted in yellow as well, and will invoke the same functionality as the original polygon. The original polygon will remain on the map until the user chooses to delete it using the Selection Tool or clear it using the clear button. Once a polygon has been added, it can be moved elsewhere on the map using the Selection tool.
  • a Select by Copy tool 9436 allows the user to copy a data element from one layer to another, at which point the shape of the copied data element becomes the selection area.
  • the tool tip for this tool reads, "Select by Copying an Object”.
  • the text prompt for this tool reads, "Use this tool to select data elements by copying a shape from anther layer”.
  • the Active Layer attribute bar is associated with this tool, and appears within the docking bar immediately to the right of the toolbar.
  • the cursor When this tool is selected, and, when the cursor is passed over the Map window, the cursor is displayed as a selection arrow (the selection arrow is different in appearance than the standard cursor arrow).
  • the cursor When the cursor is moved over the Map window, the user can click on any point on the active data layer. If an Active Layer has been selected prior to the selection of a point, the Copy Object pop up appears, allowing the user to input a layer to copy the object to. Upon closing the pop up, the shape outline (i.e. point, line, or polygon shape file) of the selected editable data element is copied to the layer that the use indicated in the Copy Object pop up. The Active Layer then switched to the "copy to" layer. The outline shape appears, and functions as if the user had used any of the 8296
  • analysis selection tools to create that shape file (i.e. it defines the area selected for analysis).
  • the user can use the selection tool to select this point, line, or polygon and the result is the selection of the associated area for analysis.
  • a Buffer tool 9438 allows users to "buffer”, or create an offset, from a data element that exists on the active data layer.
  • the tool tip for this tool reads, "Buffer”.
  • the user Before selecting this tool, the user first select one or more data elements.
  • the ente ⁇ rise spatial system checks that at least one data element within the visible layers has been selected using one of the analysis selection tools. If no data element within the visible layers has been selected, an enor message appears within a pop up reading, "One or more data elements must be selected before the buffer tool can be used.
  • the Buffering pop up dialog box appears. This dialog box allows the user to input a linear buffering offset distance.
  • the buffering is applied to the map.
  • the buffer area that the user has defined is overlaid on the map as a new polygon, displayed in the color that the user selected in the buffering pop up. If the user chose to use the buffer to select data elements on a specific layer, the ente ⁇ rise spatial system will look for data elements touching anywhere within the buffered region and on the selected layer. Any such data elements are selected (e.g., highlighted in yellow).
  • the analysis attributes become available to the customer in the Analysis Summary window.
  • the Full Report button becomes available. The full report is available by selecting the full report button.
  • the buffered area remains displayed until the user selects another area for analysis.
  • the buffer tool primarily is used only to launch a pop up, it does not remain selected after its use. Instead, the tool that was selected previous to its use is the selected tool. Each time that the user wants to use this tool, the user selects the tool.
  • a Query tool 9440 allows the user to define a Boolean query for an active layer and highlight the data within the Map window.
  • the tool tip for this tool reads, "Query”. There is no text prompt for this tool, in that it merely launches a pop up dialog box. There is no attribute bar associated with this tool.
  • this tool When this tool is selected, it immediately launches the Boolean Query pop up dialog box. If the user successfully defines a query in this dialog box, then the results are highlighted in the Map window. The Full Report button is available. Upon selection, the full report will launch the detailed attribute data for the data that meets the Boolean criteria.
  • the query tool primarily is used only to launch a pop up, it does not remain selected after its use. Instead, the tool that was selected previous to its use is the selected tool. Each time that the user wants to use this tool, the user selects the tool.
  • a Clear tool 9442 allows the user to clear the analysis or buffer that is currently active and highlighted within the Map window. This tool shall only become available when one or more data elements are currently selected (e.g., highlighted). Otherwise, the tool is grayed out and unavailable.
  • the tool tip for this tool reads, "Clear Analysis”. There is no text prompt for this tool, in that it's action takes effect immediately. There is no attribute bar associated with this tool. [0618] When this tool is selected, it immediately clears any active analysis. Highlighted items on the map is cleared. Information in the Analysis Summary window is cleared. The Full Report button will no longer be available. Since the clear analysis tool primarily is used only to launch a pop up, it does not remain selected after its use.
  • FIG. 95A illustrates section separators (e.g., 9510) in accordance with certain implementations of the invention.
  • the second form of grouping is to group icons together into an "expanded tool view". This is used when the tools are very similar in functionality, in order to save space or o reduce the amount of clutter on the toolbar.
  • This control uses a selection arrow to open an expanded toolbar area.
  • the expansion is located inside of the main toolbar, top aligned with the top of the arrow button fro that expansion toolbar.
  • the expansion toolbars display two columns of tools. Standard Rollover effects are used.
  • When a user selects an icon from the expansion the expanded toolbar closes. The selected icon is now the primary icon for that expansion and is visible on the main toolbar. The icon is shown as selected on the main toolbar.
  • FIG. 95B illustrates grouping of tools into expansion toolbars 9512 in accordance with certain implementations of the invention.
  • the Text tool is the default tool for the Drawing tools Expansion Toolbar.
  • FIG. 95C illustrates sections 9514, 9516, 9518, 9520, 9522 within a toolbar in accordance with certain implementations of the invention.
  • the expansion toolbars available within the ente ⁇ rise spatial system software include an Information Tools Expansion Toolbar, a Drawing Tools Expansion Toolbar, and an Analysis Tool Expansion Toolbar.
  • FIG. 95D illustrates an Infonnation Tools Expansion Toolbar 9530 in accordance with certain implementations of the invention.
  • FIG. 95E illustrates a Drawing Tools Expansion Toolbar 9540 in accordance with certain implementations of the invention.
  • FIG. 95E illustrates an Analysis Tools Expansion Toolbar 9550 in accordance with certain implementations of the invention.
  • FIG. 96 illustrates a table 9610 in which tools described herein may be grouped in accordance with certain implementations of the invention.
  • FIG. 97A illustrates a Measure attribute bar 9710 in accordance with certain implementations of the invention.
  • the Measurement attribute bar is available whenever the user has selected the measurement tool and gives the user various options for use with the measurement tool, including the ability to define the unit of measurement, show measurements only at the endpoint or at each segment of the polyline, and determine whether the measurement will automatically be cleared when the user starts a new task.
  • the attribute bar meets the standard guidelines for the use of attribute bars.
  • the attribute bar pop up appears immediately to the right of the toolbar within the docking bar.
  • a Measurement Unit drop down list contains the full list of available units of measurement, to include, for example, miles, yards, feet, kilometers, and meters.
  • a Display Location drop down list contains "endpoint only” and "all segments” options.
  • the distance measurement is displayed at every line segment endpoint in the polyline. Every time that a new segment is added to the polyline, the display is updated so that the distance is also displayed at this new segment endpoint.
  • the line segment(s) and measurement display are cleared at the user's next action within the ente ⁇ rise spatial system software (i.e. upon the user selecting another control within the ente ⁇ rise spatial system software). If the user deselects the Clear measurement checkbox, the line segment(s) and measurement display will not be cleared at the user's next action within the ente ⁇ rise spatial system software. This is useful if the user wants to create a map that includes, for example, the measurement information.
  • FIG. 97B illustrates an Active Layer attribute bar 9712 in accordance with certain implementations of the invention. This attribute bar is used whenever any analysis tool is selected that requhes the selection of an active layer.
  • An Active Layer drop down list contains the full list of data layers that are currently set as visible. The current active layer, if there is one, is displayed. Selection of a new font from the drop down is optional. This drop down box is always available to the user. This control has the initial focus.
  • FIG. 97B illustrates a Line attribute bar 9714 in accordance with certain implementations of the invention. This attribute bar is used whenever a user wishes to change the one or more of the attribute settings for a line that has been or is draw on the map.
  • FIG. 97D illustrates a shape attribute bar 9716 in accordance with certain implementations of the invention. This attribute bar is used whenever a user wishes to change the one or more of the attribute settings for a rectangle, ellipse, or polygon shape that has been or is draw on the map.
  • FIG. 98 A illustrates a Point n' View pop up dialog box 9810 in accordance with certain implementations of the invention.
  • a Point n' View pop up dialog box is used whenever a user wishes to determine the underlying attribute data for a specific data element on the active layer.
  • the top attribute elements e.g., up to six per
  • Dynamic display is supported.
  • the field name is dynamically inserted; this text appears immediately below the introductory text; this text is indented approximately 10 pixels; the font is Arial; the point size of the font is 11; the font to be used is normal; the text color is black; and, there is no aliasing of the text.
  • the Dynamic Atfribute Text the attribute information for the associated field is inserted; this text is to the right of the fieldname; the font is Arial; the point size of the font is 11; the style of the font is italic; the text color is black; and, there is no aliasing of the text. [0634] If the user selects the Full Report button, the pop up is closed. The Full Report pop up is launched for the data element that was displayed within the Point n' View pop up.
  • FIG. 98B illustrates a Global Point n' View pop up dialog box 9812 in accordance with certain implementations of the invention.
  • This pop up dialog box is very similar to the Point n' View pop up dialog box, except that it is used whenever a user wishes to determine the underlying attribute data for a specific data element on all visible data layers.
  • the differences between this pop up and the Point n' View are as follows: the pop up area is scrollable and the dynamic data for each layer is presented to the user; each layer is separated with a label, reading "Data Layer: ⁇ insert data layer name"; and, the Full Report button will launch the full report for all of the data layers.
  • FIG. 99 illustrates a Change Drawing Object Order pop up dialog box 9910 in accordance with certain implementations of the invention.
  • This pop up dialog box is used whenever a user has indicated a desire to rearrange the order of the various drawing objects created by the user.
  • the pu ⁇ ose of this UI screen is to provide an interface that allows the user to defme in what order the drawing objects is displayed. Drawing objects as a group, are displayed on top of all other map layers.
  • a Data Layer List Box control consists of three elements, including a list box and two buttons.
  • FIG. 100 illustrates a Point n' Attribute pop up dialog box 10010 in accordance with certain implementations of the invention. Every project has an associated data store that is reserved for the user to provide input to. The Point n' Attribute functionality allows the user to add data to this data store, and more specifically, add data that gets tied to an exact spatial location. The data can then be exported for use in any number of different software (e.g., applications)s.
  • This pop up dialog box 10010 provides the Point n' Attribute functionality and is accessed when the user selects the Point n' Attribute tool from the toolbar on the main UI screen.
  • longitude dynamic text the longitudinal position that the user clicked upon with the Point n' Attribute tool active is dynamically inserted in degrees, minutes, and seconds.
  • latitude dynamic text the latitudinal position that the user clicked upon with the Point n' Attribute tool active is dynamically inserted in degrees, minutes, and seconds.
  • address dynamic text a check is made to determine whether an address can be found from the latitude and longitude values.
  • the address 1 and address 2 lines of the address are dynamically inserted in the following location: the text is to the right of the static prompt, and the text is aligned with all of the field controls in this pop up dialog box.
  • a check is made to determine whether this is this first time that the Point n' Attribute data store has been accessed for this project. If yes (if it is the first time), then the Setup Point n' Attribute pop up dialog box is launched and successfully completed before this pop up dialog box appears to the user. If no (i.e. if the data store has aheady been setup), then the Point n' Attribute pop up dialog box becomes available to the user.
  • data for the dynamic displays is retrieved. For example, the longitudinal position that the user clicked upon with the Point n' Attribute tool (in degrees, minutes, and seconds) is retrieved and inserted into the Longitude Dynamic Text control. Also, the latitudinal position that the user clicked upon with the Point n' Attribute tool (in degrees, minutes, and seconds) is retrieved and inserted into the Latitude Dynamic Text control. A check is made to determine whether an address can be found for the longitude and latitude that the user clicked upon with the Point n' Attribute tool. If yes, then the address 1 and address 2 lines of the address are dynamically inserted into the dynamic address text.
  • a new record is added to the Point n' Attribute data store for the current project; all of the data entries provided by the user is stored in the data store in their appropriate fields; the longitude is stored in a longitude field that is automatically created for the record; the latitude is stored in a longitude field that is automatically created for the record; the address, if found, is stored in an address field that is automatically created for the record; the date of input is stored in a date field that is automatically created for the record; the data store record is saved; a graphic of a "push pin" is placed on the map on the spot where the user clicked with the Point n' Attribute tool.
  • FIG. 101 illustrates a push pin 10110 in accordance with certain implementations of the invention.
  • the push pin is an indication that the user has associated a data store record with that location.
  • the user can click on the push pin with the selection tool. This will launch the Point n' Attribute pop up dialog box, pre-filled with the data that exists for that record.
  • the user can edit or view the data.
  • FIG. 102 illustrates a Setup Point n' Attribute pop up dialog box 10210 in accordance with certain implementations of the invention. This pop up dialog box appears when a user selects the Point n' Attribute tool for the first time in a given project to allow the user to custom define the field names for the Point n' Attribute data store file to be associated with this record.
  • FIG. 103 illustrates a Buffering pop up dialog box 10310 in accordance with certain implementations of the invention.
  • This pop up dialog box is used whenever a user wishes to buffer a linear distance off of a selected data element or data elements.
  • This pop up dialog box is accessed when the user has selected the buffer tool from the toolbar on the main UI screen.
  • FIG. 104 illustrates a Boolean Query pop up dialog box 10410 in accordance with certain implementations of the invention. This pop up dialog box is used when the user wants to run a Boolean query against the active data layer. This pop up dialog box is launched when the user selects the Query Tool from the toolbar.
  • FIG. 105 illustrates a reference map 10510 in accordance with certain implementations of the invention. The map display within the reference window is the default imagery used in the ente ⁇ rise spatial system software, independent of the imagery selection made by the user. The Map window is a custom control whose function is twofold.
  • a "reference" map is displayed within the window to provide a frame of reference as to where the Area of Interest (as displayed in the Main Map window) is with respect to the greater geographical area.
  • a red square outline is overlaid on the map representing the area of the AOI. As the user zooms in, zooms out, or pans, the square shall move and size appropriately to represent the size and location of the AOI.
  • the area of the map contained within the reference Map window is determined as follows: initially, the area of the reference Map is the "geographic constraint" area for the user (i.e. each user is set up so that they can only work within a certain geographic area - the starting reference map is this area); when a user zooms in closely with the AOI to the point where the red square would get smaller than 5 pixels by 5 pixels in size, the reference map is zoomed in such that the AOI is l A the height of the new reference map and Vi the width of the new reference map; and, when a user zooms out beyond the extent of the reference map, the reference map shall zoom out by an equal amount (although it does not zoom out beyond the geographical constraint setup for the user) .
  • the reference map allows the user to pan the AOI.
  • the cursor is passed over the red rectangle, the cursor is displayed as a hand (same graphic as is used in the pan icon).
  • the user can click on any point on the map to "grab" the map at what becomes the "handle point”.
  • the user can "drag” the red rectangular area anywhere within the reference map area.
  • the AOI is updated to the AOI enclosed within the moved rectangular region. A check is made to determine whether or not the updated AOI has support for the base image that is currently selected.
  • the AOI - Base Image Conflict pop up dialog box appears. If the user selects to change the AOI, then the Map window is refreshed with the new AOI and reversion to "none" as the Base Image selection is performed. If the user chooses to keep the Base Image, the AOI shall not be updated. If the Base Image is available, the Map window is refreshed with the new AOI. [0648] As for the reference map window location, the reference map is located immediately to the right of the map frame. The reference map is top aligned with the map frame. The location of the Map window is fixed - the user has no ability to move the window.
  • FIG. 106 illustrates a Map Summary window 10610 in accordance with certain implementations of the invention.
  • the pu ⁇ ose of this portion of the main UI screen is to allow users to view basic infonnation about the Area of interest that has been defined. It is a display area that is updated every time that the user update the AOI.
  • the detailed characteristics are as follows.
  • FIG. 107 illustrates an Analysis Summary window 10710 in accordance with certain implementations of the invention.
  • the pu ⁇ ose of this portion of the main UI screen is to provide summary information about the data in the Active Layer and within a user-defined area.
  • this area of the UI screen displays information about the data within the Active Data Layer. Each data layer has different information about it that is most important, and as a result has different information that is displayed within the final 3 lines of display remaining within the Analysis Summary window. This control, therefore, is flexible enough to support a variety of information types that will vary from data layer to data layer.
  • the dynamic text consists of two components: a dynamic prompt and dynamic information.
  • the dynamic prompt is the field name for the information displayed.
  • the dynamic information is the cumulative information for the conesponding field for all data elements within the analysis area.
  • FIG. 108 illustrates Command buttons 10810 in accordance with certain implementations of the invention. These various buttons provide functionality that is described in the specific areas that they address.
  • FIG. 109 illustrates scaling the main UI screen 10910 to a different resolution UI screen 10912 in accordance with certain implementations of the invention.
  • the following sections of the main UI screen resize automatically when the customer is at resolutions that are higher than 800 x 600: Data Layers Custom Tab window, Map window, and Analysis Summary Display.
  • the Map window is the only control on the ente ⁇ rise spatial system UI screen that automatically resizes when the customer is at resolutions that are higher than 800 x 600.
  • the Map window resizes to the maximum size that the UI screen will allow.
  • the scaling is proportional, and skewing of the proportions does not occur.
  • FIG. 110 illustrates table 11010 that identifies the size of the Map window at some resolutions in accordance with certain implementations of the invention.
  • FIG. Il l illustrates logic 11100 for creating a map in accordance with certain implementations of the invention. From a main UI screen, if a user selects a map button, the user is taken to a map layout UI screen. From there, the user can select a continue button to go to a preview UI screen. The user can then save a map, send the map to the printer, email the map, or download the map to a file.
  • FIG. 112 illustrates a map layout window 11210 in accordance with certain implementations of the invention.
  • the available menu commands on this UI screen include, for example: New Project, Open Project, Save Project, and Close.
  • the available menu commands on this UI screen include, for example: User Name, Password, System Settings, and Change Default AOL Within the Help Menu,
  • the available menu commands on this UI screen include, for example: About, Contents, and Index. All other commands are visible to the user, but grayed out.
  • FIG. 113 illustrates a Map Preview UI screen 11310 in accordance with certain implementations of the invention.
  • This UI screen provides the user with a preview of the map, and gives the user the option to print, email, or save the map.
  • the preview display window occupies the majority of the UI screen's area, and is where the preview of the map will actually be displayed.
  • the background graphic is the main component that is displayed within the display window. The background visually represents the paper background for the map.
  • the preview elements include, for example: the map that the user has created is shown in the preview; the map will still be covered with the ente ⁇ rise spatial system watermark in order to prevent the user from saving the file from the UI screen display; and, all of the elements that the user selected from the Map Output UI screen is represented in the preview.
  • FIG. 114 illustrates an example of a download dialog box 11410 used for the Microsoft® Internet Explorer® in accordance with certain implementations of the invention.
  • the file types to save out to include, for example: JPG, WMF, and PDF.
  • the file type defaults to JPEG in certain implementations.
  • FIG. 115 illustrates a save file UI screen 11510 in accordance with certain implementations of the invention.
  • FIG. 116 illustrates logic 11600 for purchasing data in accordance with certain implementations of the invention. From the mainUI screen, if the data buy button is selected, a firs data buy options UI screen is displayed. From here, if the continue button is selected, a second data buy UI screen is displayed, and, from here, if the continue button is selected, a third data buy order summary UI screen is displayed. From here, a user may preview an image, change shipping information, change billing information or select a continue button to process and order. When the order is processed, a confirmation number is given to the user, and a fourth data buy confirmation screen is displayed.
  • FIG. 117 illustrates a first data buy UI screen 11710 in accordance with certain implementations of the invention.
  • a user may select imagery and data layers to create a map.
  • the UI screen 11710 includes a list that contains all of the base imagery and data layers available for the Area of Interest that a user has chosen.
  • FIG. 118 illustrates an example imagery pop up dialog box 11810 in accordance with certain implementations of the invention.
  • This pop up dialog box is used to give users an understanding of the quality levels of the various types of imagery that is available through the ente ⁇ rise spatial system by providing sample images.
  • the sample images are in not tied to any settings, including the AOI that the user has selected for the current project. Instead, the sample images are simply image samples.
  • FIG. 119 illustrates a second data buy UI screen 11910 providing data options in accordance with certain implementations of the invention. This UI screen shows a list of data options a user can choose.
  • FIG. 120 illustrates a third data buy UI screen 12010 with a purchase summary in accordance with certain implementations of the invention. From this point forward in the data buy process, the focus is on shopping cart functionality.
  • FIG. 121 illustrates a change shipping information pop up dialog box 12110 in accordance with certain implementations of the invention.
  • This pop up dialog box appears when a user is undertaking the process of purchasing data, and has indicated a desire to change shipping information by selecting the "change Shipping Info" link on the third data buy UI screen.
  • the pu ⁇ ose of this UI screen is to provide an interface that allows the user to change the shipping information for an account. Once the changes have been made, the changes will apply for all future shipments of data until the user elects to change the shipping information once again.
  • FIG. 122 illustrates a change billing information pop up dialog box 12210 in accordance with certain implementations of the invention.
  • This pop up dialog box is used when a user is undertaking the process of purchasing data, and has indicated a desire to change their billing information by selecting the "Change Billing Info" link on the third data buy UI screen.
  • the pu ⁇ ose of this pop up dialog box is to allow the user to change the billing information associated with an account. Once the changes have been made, the changes will apply for all future shipments of data, unless the billing information is changed again.
  • this pop up dialog box is available to the ente ⁇ rise spatial system administrators. If a company would like to change the billing information associated with their account, the company would send an updated purchase order that shows the change in billing information. It is after this purchase order is received that the ente ⁇ rise spatial system administrator will change the billing information for the account.
  • the user can access the underlying attribute data for the element(s) by selecting a "full report” button, located near the bottom right portion of the UI screen. Selection of this button launches the Full Report pop up dialog box.
  • This dialog box provides a large grid display that contains all of the data contained within the active data layer and located within the boundaries defined by the user's polygon.
  • This UI screen displays attribute data, allows the user to export or print data, and allows the user to run a query in order to see only a subset of the attribute data.
  • FIG. 123 illustrates a Full Report pop up dialog boxl2310 in accordance with certain implementations of the invention. If the user selects the Query Hyperlink, the UI screen is refreshed with the Full Report pop up dialog box with Boolean Query UI screen. If the user selects the Export button, a .csv (comma separated values) format text file is downloaded to the user's system. The standard browser download dialog box is presented to the user, allowing the user to determine how the file is handled in accordance with standard web download protocols.
  • FIG. 124 illustrates a download dialog box 12410 used for the Microsoft® Internet Explorer® in accordance with certain implementations of the invention. [0672] FIG.
  • FIG. 125 illustrates a Full Report pop up dialog box 12510 with Boolean query in accordance with certain implementations of the invention.
  • This UI screen is a derivation of the Full Report pop up dialog box, and is used when the user wants to run a Boolean query against the tabular attribute data. Most of the attributes and functionality of this UI screen are the same as with the Full Report pop up dialog box, with a few exception. If the user runs a query, the rows of the data elements that meet the query criteria are highlighted.
  • FIG. 126 illustrates highlighting (e.g., 12610) in a Full Report pop up dialog box 12510 with Boolean query in accordance with certain implementations of the invention.
  • Document collaboration is a useful aspect of the ente ⁇ rise spatial system as it provides users with the ability to save their work for future use as well as share their work with others.
  • Central to document collaboration is the ability to be able to notify members when a document has been saved, or placed on the ente ⁇ rise spatial system, and who should have access to this document.
  • Some documents may be files, such as map image files, while others are records, such as a project or AOI.
  • FIG. 127 illustrates a file menu 12710 in accordance with certain implementations of the invention.
  • documents are saved on the ente ⁇ rise spatial system server and are not saved locally.
  • a user can create a new project based on existing settings or on an existing template / map service. Each time the ente ⁇ rise spatial system is run, a default project is opened which is based on the default AOI. When opening, the ente ⁇ rise spatial system server creates a new temporary record to avoid accidentally overwriting the original AOI project. Once open, the user can change the AOI and begin work on a project.
  • an Open operation when performing an Open operation, users will be able to open existing projects as well as previously saved map images. In certain implementations, as their work is saved on the server, users have folder management capabilities, such as being able to add, edit and delete folders.
  • Save operations there are several save operations that a user can perform, including, for example: saving a project, a project template, an AOI, and saving a map image to file.
  • the user chooses the File: Save or File Save As command. If the project has not yet been saved, e.g., it is a temporary project, then the Save UI screen appears. If the project has been aheady saved and the user chooses the File: Save command, then the existing project is immediately updated. If the user chooses the File: Save As command, the Save UI screen is always displayed, irrespective of whether the project has been previously saved.
  • the user is able to choose whether or not to save the project as a project file or a project template.
  • the save to project template option may be available if the user has the appropriate administration privileges. If not, then the user is saving to a project by default.
  • Project templates are basically projects with predefined and pre-selected data layers. For example, company A, a forestry company, only wants field representatives to be able to see data layers specific to conducting financial stand analysis. While the AOI may consist of over 30 layers, only 5 are specific to financial stand analysis. By using a project template, the field representatives will only see the data layers relevant to them, therefore improving the user experience and usability by removing redundant data layers that can easily confuse.
  • the ente ⁇ rise spatial system provides the ability to determine who within an organization has the privileges to create them, and conversely, who is able to see and use them.
  • AOI Area of Interest
  • This option provides greater flexibility for users, and helps them easily change their default so that it always opens to a specific area that interests them, for example, Los Angeles, rather than the enthe US.
  • This ability to defme the AOI also allows a company and/or supervisor to set the area of interest that they have subscribed to. This avoids showing unnecessary infonnation to a user if it is determined that they do not have rights to that particular area
  • the ente ⁇ rise spatial system ties an AOI to both a company and user.
  • FIG. 128 illustrates processing 12800 for a New operation in accordance with certain implementations of the invention.
  • the New Project UI screen is displayed, and a check is made to identify any existing projects and/or project templates.
  • FIG. 129 illustrates aNew Project UI screen 12910 in accordance with certain implementations of the invention.
  • FIG. 130 illustrates a Select Template UI screen 13010 in accordance with certain implementations of the invention.
  • This UI screen is called, display the name and details of the project template are dynamically displayed within the 4 column template grid.
  • the Open operation allows the user to open a server-side project, template or map image. In all cases the process is the same, except when opening a map image. In this instance the map image will display in a separate Preview pop-up window.
  • FIG. 132 illustrates processing 13100 for an Open operation in accordance with certain implementations of the invention.
  • FIG. 132 illustrates an Open Project UI screen 13210 in accordance with certain implementations of the invention.
  • a user can open different types of files.
  • the Save operation allows the user to save on the ente ⁇ rise spatial system server a project, template, AOI or map image, h all cases the process is the same, except when saving a map image, hi this instance the map image will first go to the layout and previews UI screens and then back to the save options.
  • the user is able to notify members of the document as well as restrict access to the document.
  • FIG. 133 illustrates logic 13300 for processing a Save operation in accordance with certain implementations of the invention.
  • Files can be saved as one of the following types: project - saves a project to a new name including AOI and all edits; template - saves a project as a map service template (in certain implementations, only available to administrators); AOI - saves current Area of Interest (AOI), without edits; or map image - saves project as a map image.
  • FIG. 134 illustrates a Save Project UI screen 13410 in accordance with certain implementations of the invention.
  • An Email Form UI screen is used to notify other people via email.
  • FIG. 135 illustrates an Email Form UI screen 13510 in accordance with certain implementations of the invention.
  • the ente ⁇ rise spatial system provides support for transactional customers.
  • ente ⁇ rise spatial system services may purchase ente ⁇ rise spatial system services on a transaction by transaction basis.
  • the ente ⁇ rise spatial system software is modified in order to ensure that the customer can P T/US03/08296
  • FIG. 136 illustrates logic 13600 for supporting transactional customers in accordance with certain implementations of the invention. From the main UI screen, a user may create a map, perform analysis, or buy data.
  • the main UI screen is modified for the transaction user, so that the analysis tools are not immediately available to the user. Instead, an "Analysis" button at the bottom of the UI screen will provide the transactional user with the path to accessing this functionality.
  • FIG. 137 illustrates a main UI screen 13710 for supporting transactional customers in accordance with certain implementations of the invention.
  • the transactional user is presented with a modified version of the main UI screen (that a subscription customer would see) when the user first enters the ente ⁇ rise spatial system software.
  • the Analysis tools are not available to the user by default.
  • the user goes through the shopping cart and agree to pay for the analysis tools before they can become available.
  • the ente ⁇ rise spatial system watermark is displayed on top of the map that is displayed within the Map window.
  • the goal behind the display of the watermark is to prevent users from saving a usable version of the map graphic using a print UI screen utility.
  • the watermark extends over as much of the graphic as possible.
  • the watermark is barely visible.
  • a treatment such as the following is used: the font is large and bold; the font is black in color; and, the text is displayed at 25% opacity.
  • This watermark is displayed on top of any representation of a map that can be downloaded from the browser, including on the map preview UI screen.
  • the buttons at the bottom of the UI screen have changed to allow the user to indicate which major task is undertaken. This is needed because each task has slightly different shopping cart experiences.
  • the buttons will therefore include, for example, "Create Map", "Analysis", and "Data Buy".
  • FIG. 138 illustrates a first Shopping UI screen with an Order Summary 13810 in accordance with certain implementations of the invention. This UI screen always marks the beginning of the shopping cart process for the user.
  • FIG. 139 illustrates a second Shopping UI screen with Contact Information 13910 in accordance with certain implementations of the invention. This UI screen may be pre-populated with information that the user provided in an earlier session with the ente ⁇ rise spatial system, if at that time, the user selected a Future Purchases checkbox.
  • FIG. 140 illustrates a third Shopping UI screen with Payment Information 14010 in accordance with certain implementations of the invention.
  • This UI screen is used to gather payment infonnation from customers.
  • This UI screen may be pre-populated with information that the user provided in an earlier session with the ente ⁇ rise spatial system, if at that time, the user selected the Future Purchases checkbox.
  • FIG. 141 illustrates a fourth Shopping UI screen with Purchase Summary 14110 in accordance with certain implementations of the invention. If the user selects the purchase button, the order is processed. The user's credit card is run. A confirmation email is sent to the user. The item is delivered according to the means specified by the user.
  • FIG. 142 illustrates a fifth Shopping UI screen with Acknowledgment 14210 in accordance with certain implementations of the invention.
  • the Acknowledgment UI screen appears.
  • This UI screen provides the user with formal acknowledgment that the purchase has been completed, and provides a printable version of the information contained on the fourth Shopping UI screen with Purchase Summary.
  • this UI screen allows the user to download the file again in the event of a download error.
  • FIG. 143 illustrates logic 14300 for entering the shopping cart from the create map functionality in accordance with certain implementations of the invention. When creating a map, the shopping cart functionality begins immediately after the preview UI screen.
  • FIG. 144 illustrates a first Map Shopping UI screen with Order Summary 14410 in accordance with certain implementations of the invention.
  • This UI screen represents a shopping order summary. If the user selects the Create another map button, the current map is saved to the shopping cart. If the user selects the Buy map's GIS data button, the current map is saved to the shopping cart.
  • FIG. 145 illustrates a second Map Shoppmg UI screen with Purchase Summary 14510 in accordance with certain implementations of the invention.
  • FIG. 146 illustrates logic 14600 for entering the shopping cart by selecting analysis form the main UI screen in accordance with certain implementations of the invention. When used for the payment of analysis functionality, the shopping cart functionality begins immediately after the main UI screen.
  • FIG. 147 illustrates logic 14700 for shopping cart functionality when the user enters the shopping cart from the data purchase UI screens in accordance with certain implementations of the invention.
  • the shopping cart functionality begins immediately after the data purchase details UI screens.
  • From a Data Buy Shopping UI screen with Order Summary if the user selects the checkout button, the user is advanced to the next UI screen of the shopping cart experience to unlock the analysis tools. If the user chose to fulfill the data by CD ROM delivery, the next UI screen is Analysis Shopping UI screen with Contact
  • the File drop down menu (e.g., 12710 of FIG. 127) provides various types of functionality that are related to file management and use issues. Among other things, this menu provides functionality to open, save, print, and email files.
  • the New menu item provides access to the new file functionality.
  • the Open menu item provides access to the open file functionality.
  • the Save menu item provides access to the save file functionality.
  • the Print Map menu item allows the user to branch off to the map printing portion of the ente ⁇ rise spatial system software.
  • the Email Map menu item allows the user to branch off to the portion of the ente ⁇ rise spatial system software that allows the user to email a map.
  • the Save Map menu item allows the user to branch off to the map saving portion of the ente ⁇ rise spatial system software.
  • the Data Buy menu item allows the user to branch off to the data buy portion of the ente ⁇ rise spatial system software.
  • the Export Pn'A Data function exports the Point n' Attribute data store to a comma delimited text file on the user's hard drive. This function makes use of standard browser functionality. Upon selection of this menu item, a .csv format text file is downloaded to the user's system. The standard browser download dialog box is presented to the user, allowing the user to determine how the file is handled in accordance with standard web download protocols.
  • FIG. 148 illustrates a download dialog box 14810 used for the Microsoft® Internet Explorer® in accordance with certain implementations of the invention. Selection of the "Open... " option will load the txt file into the ente ⁇ rise spatial system software that the user has setup to handle text files. Selection of the Save" option will launch the browser's Save As dialog box.
  • the Layer menu allows the user to access functionality that specifically applies to the data layers (vector data) within the ente ⁇ rise spatial system software. Specifically, this menu provides functionality that defines the user's favorite layers (for use in the Favorites tab), defines the layer order, and perform various zoom to layer extent functionality.
  • the commands include, for example: Change Order, Edit Favorites, Zoom to Layer Extent, and a Zoom to All Layers' Extents menu item.
  • the pu ⁇ ose of the Change Order menu item is to allow the user to define the order in which the visible data layers are displayed within the Map window.
  • the pu ⁇ ose of the Edit Favorites List menu item is to allow the user to define the layers that appear for selection within the "Favorites" tab in the data layers portion of the main UI screen.
  • the pu ⁇ ose of the Zoom to layer extent menu item is to allow the user to zoom to the extent of a single layer. Upon selection of this drop down menu item, the ente ⁇ rise spatial system software shall determine the number of layers that are currently set as visible. If more than one date layer is visible, then selection of this drop down menu item shall launch the Zoom layer pop up dialog box.
  • the ente ⁇ rise spatial system software shall determine the smallest AOI that bounds the extents of all of the specific data layer that the user has made visible. Then, a check is made to determine whether or not the updated AOI has support for the base image that is currently selected. If the base image is not available for the new AOI, then the AOI - Base Image Conflict pop up dialog box appears. If the user selects to change the AOL then the Map window is refreshed with the new AOI and reversion to "none" as the Base Image selection is performed. If the user chooses to keep the Base Image, the AOI shall not be updated to reflect the Zoom to All command.
  • the Map window is refreshed with the new AOI that reflects the zoom to the extent of all layers. If no data layers are currently set as visible, a pop up dialog box error message appears, reading, "You must have at least one data layer visible before you can use this command".
  • FIG. 149 illustrates a Zoom layer pop up dialog box 14910 in accordance with certain implementations of the invention.
  • This pop up dialog box is used whenever a user selects to zoom to the extent of a single data layer by selecting the "Zoom to layer extent command" from the Layers drop down.
  • the pu ⁇ ose of this UI screen is to allow the user to define the layer whose extent the user would like to zoom to. The user will only be able to select from those layers that are set as visible at the time that the pop up dialog box is invoked.
  • the pu ⁇ ose of the Zoom to all Layers' Extents menu item is to allow the user to zoom to the extent of all layers that are visible at the time that the user selects this menu item.
  • the ente ⁇ rise spatial system software determines the smallest AOI that bounds the extents of all of the data layers that the user has made visible.
  • a check is made to determine whether or not the updated AOI has support for the base image that is currently selected. If the base image is not available for the new AOL then the AOI - Base Image Conflict pop up dialog box appears. If the user selects to change the AOI, then the Map window is refreshed with the new AOI and reversion to "none" as the Base Image selection is performed.
  • the pu ⁇ ose of the Drawing menu is to provide the user with access to functionality related to the area of cartography. Specifically, this menu provides options to access toolbar functionality in an alternative manner, and also gives the user a mechanism to quickly turn all drawing objects off and on (i.e. make them visible and invisible).
  • commands include, for example: Text Tool, Line Tool, Polyline Tool, Rectangle Tool, Ellipse Tool, Polygon Tool, and View/Hide Drawing Objects.
  • the pu ⁇ ose of the Text Tool menu item is to provide an altemate means by which the user can access the Text Drawing Tool functionality.
  • the pu ⁇ ose of the Line Tool menu item is to provide an altemate means by which the user can access the Line Drawing Tool functionality.
  • the pu ⁇ ose of the Polyline Tool menu item is to provide an altemate means by which the user can access the Polyline Drawing Tool functionality.
  • the purpose of the Rectangle Tool menu item is to provide an occasionalmate means by which the user can access the Rectangle Drawing Tool functionality.
  • the pu ⁇ ose of the Ellipse Tool menu item is to provide an occasionalmate means by which the user can access the Ellipse Drawing Tool functionality.
  • the pu ⁇ ose of the Polygon Tool menu item is to provide an altemate means by which the user can access the Polygon Drawing Tool functionality.
  • the View/Hide Drawing Objects menu item all of the drawing objects that are created within a specific project are stored on a single layer.
  • the View/Hide Drawing Objects command is a toggle function that turns this drawing object layer on and off (i.e., makes the layer visible or invisible).
  • the Analysis menu is designed to provide an altemate means by which the user can access functionality that exists within the toolbar on the main UI screen.
  • the commands include, for example: Select Point, Select Line Region, Select Elhpse, Select Polygon, Buffer Selection, and Boolean Query.
  • the pu ⁇ ose of the Select Point menu item is to provide an altemate means by which the user can access the Select Point Tool functionality.
  • the pu ⁇ ose of the Select Line Region menu item is to provide an altemate means by which the user can access the Select Line Tool functionality.
  • the purpose of the Select Rectangle menu item is to provide an occasionalmate means by which the user can access the Select Rectangle Tool functionality.
  • the pu ⁇ ose of the Select Ellipse menu item is to provide an occasionalmate means by which the user can access the Select Ellipse Tool functionality.
  • the pu ⁇ ose of the Select Polygon menu item is to provide an alternate means by which the user can access the Select Polygon Tool functionality.
  • the pu ⁇ ose of the Buffer Selection menu item is to provide an alternative way to access the Buffering functionality within the ente ⁇ rise spatial system.
  • the pu ⁇ ose of the Boolean Query menu item is to provide an alternative way to access the Boolean Query functionality that is offered from both the toolbar and the full report.
  • the user can access a Preferences UI screen at any time by selecting the Preferences menu from the Main menu selections.
  • FIG. 150 illustrates selection of the Preferences menu 15010 in accordance with certain implementations of the invention. Preferences are set using a series of UI screens, all of which have the same functionality for all users, regardless of whether the user is a transactional or subscription based user.
  • the customer is granted limited ability to customize the ente ⁇ rise spatial system software.
  • the user is allowed to change his/her password as often as he/she would like. Since the user has to log in with the correct password to even see the User Profile UI screen, the password can be changed without requiring the user to enter the current password.
  • the ente ⁇ rise spatial system will automatically log a user off the ente ⁇ rise spatial system after 30 minutes of non-activity, and the user may change this default auto-logoff setting.
  • the user may also select the UI screen to first appear after login. When the user first logs into the ente ⁇ rise spatial system, the first UI screen that appears is the Welcome UI screen, which provides helpful information. However, some users may want to bypass this UI screen and go straight to the Online Map and Analysis wizard, for example.
  • This user profile function allows the user to define theh starting point within the ente ⁇ rise spatial system.
  • the user may select the default AOL This is the AOI that appears when the user first logs in, or starts a new project. This will also be the AOI for the reference map.
  • FIG. 151 illustrates logic 15100 for processing a logoff in accordance with certain implementations of the invention.
  • the logoff process is the process by which a user terminates the ente ⁇ rise spatial system session that was initiated at login. Once the user has logged off from the ente ⁇ rise spatial system, none of the functionality of the service is available to the user until the user successfully completes the login process. The user can access the logoff UI screen at any time by selecting the "Logoff button in the upper right portion of the UI screen.
  • FIG. 152 illustrates common Logoff UI screen 15210 elements in accordance with certain implementations of the invention. During the logoff process, the pull down menus are not available to the user. The menus will still appear to the user, but they are grayed out and unavailable for selection.
  • FIG. 153 illustrates a first Logoff UI screen 153 10 in accordance with certain implementations of the invention.
  • FIG. 154 illustrates a Logoff Confirmation UI screen 15410 in accordance with certain implementations of the invention. This UI screen serves as a termination point, and relies upon the customer using the web browser to navigate to whatever task the user is interested in after completing the ente ⁇ rise spatial system task.
  • FIG. 155 illustrates navigation using the Back button 15510 and using the continue button 15512 in accordance with certain implementations of the invention.
  • the wizard UI screens are cached as long as the user is actively working within the wizard. A user is considered active within the wizard from the time in which any information is entered on the first UI screen of the wizard, until any one of the following occurs: the user cancels the wizard, the wizard has been successfully completed by the user or the user elects to logoff from the ente ⁇ rise spatial system. [0729] In some cases, a login session is disrupted by a dropped connection.
  • FIG. 156 illustrates processing when there is a dropped connection 15610 in accordance" with certain implementations of the invention.
  • the user is in the process of printing an online map, and is on the layout UI screen of the print map wizard.
  • the user loses connection, for any reason (e.g., the user's Intemet connection went down, the ente ⁇ rise spatial system went down, the user's computer crashed, etc.). This is represented by arrow 1 of FIG. 156.
  • the desired experience is that when the user re-establishes a connection with the ente ⁇ rise spatial system (arrow 2), and successfully logs into the ente ⁇ rise spatial system, then the user will immediately resume at the point in the task where he/she left off (arrow 3).
  • the ente ⁇ rise spatial system software constantly saves information to a temporary file on the user's local system.
  • This file contains all of the information for the current session and all of the tasks in progress.
  • the file is periodically updated upon each selection of a continue or back button.
  • This session file is deleted upon successful logoff.
  • the ente ⁇ rise spatial system software checks for the presence of the temporary session file (if a file is present, the ente ⁇ rise spatial system software knows that the user was unable to successfully logoff from the ente ⁇ rise spatial system). If a temporary session file is not present, then the user logs in as normal, and the default UI screen is launched. If a temporary session file is present, then the ente ⁇ rise spatial system software reads the information from the file, and uses this information to launch the ente ⁇ rise spatial system software to the UI screen that the user was on at the time of interruption and load all of the data that the user had provided on various UI screens during the previous session.
  • the e-commerce related transactions touch upon all areas that are related to the billing and fulfillment relationship with the customer, and therefore cover numerous areas throughout the ente ⁇ rise spatial system software. Specifically, the e-commerce related transactions provide: support for the ente ⁇ rise spatial system subscription Pricing Plans; subscription-based billing; transaction-based billing; evaluation modes (i.e. non billing mode); tracking specific usage information; and, a back end interface to the fulfillment system.
  • the ente ⁇ rise spatial system provides a flexible e-commerce system.
  • the ente ⁇ rise spatial system derives revenue from customers who have agreed to pay for the ente ⁇ rise spatial system service on a recurring basis.
  • the e-commerce system supports a subscription-based pricing model.
  • the pricing model is very flexible.
  • the specific pricing that is offered is tailored from customer to customer, based upon a number of variables that come into play.
  • the specific variable areas that effect the pricing include, for example, the following: the number of users that a given customer has; the "type" of each user (i.e.
  • FIG. 157 illustrates a structure 15710 that shows variables that are involved in the pricing structure in accordance with certain implementations of the invention.
  • the structure 15710 shows which variables are considered part of the base subscription, and which fall within the realm of the premium level offerings.
  • the base features are common across all customers so all customers have the same access to these same features. These based features is priced based upon the number of users. The variation comes into play when a customer decides upon the mix of premium additions. As implied by the naming convention, when a customer 03 08296
  • a basic variable that affects the pricing structure is the number of users who have access to the ente ⁇ rise spatial system.
  • each licensed user ⁇ jan be classified into one of several "roles", which defme the type of user.
  • the roles available for subscription-based users will include, for example, the "power user” and the "viewer”.
  • the power user has access to all of the ente ⁇ rise spatial system functionality.
  • the viewer user will not have access to certain functionality. Support for the number of users can be provided in a manner that does not significantly impact the architecture of the ente ⁇ rise spatial system software, but instead is handled via internal ente ⁇ rise spatial system processes.
  • the process for setting up the licensed users is as follows.
  • a sales person reaches an agreement with a customer that includes; for example, x number of "role A" users and y number of "role B" users.
  • the customer will provide the ente ⁇ rise spatial system with a list of the employee names and theh corresponding role.
  • the subscriber accounts are setup by a the ente ⁇ rise spatial system employee (or an outsourced employee) using the ente ⁇ rise spatial system Admin tool.
  • a unique user name is assigned to that user, along with a temporary password.
  • the ente ⁇ rise spatial system can control the number of users by controlling the number of unique user name that are given to the customer.
  • the ente ⁇ rise spatial system employee is able to assign a role to the user, by selecting from a list of available roles.
  • the user's role is ascertained, and the ente ⁇ rise spatial system software offers functionality appropriately based upon that user's role (i.e. certain functions of the software may not be available to some users).
  • Roles can define whether or not the user can: access certain business solution, save data, upload customer data, have access to an unlimited geographic area, or if geographical constraints are in place for the user, request data fulfillment, or access premium data (or more granular data).
  • Every customer is provided a base amount of storage space on the ente ⁇ rise spatial system servers as part of their subscription.
  • This storage can be used to save maps, upload data (e.g., at a later time), etc.
  • the amount of base storage that is allocated to a customer is flexible, so that this variable can be tied to a subscription level, number of users, or any other variable.
  • the pricing plan is setup up so that the customer is not supposed to exceed this storage amount.
  • the ente ⁇ rise spatial system provides reports that show the amount of storage being used by a customer, broken down by user. A process is put into place where the Account Manager will conduct a quarterly review, and if the customer is exceeding the agreed upon amount, then the contract is modified to compensate the enterprise spatial system accordingly.
  • the ente ⁇ rise spatial system does not begin compiling charges to the customer once the base amount of storage has been exceeded. Instead, the ente ⁇ rise spatial system automatically generates reports that indicate whether or not a customer has exceeded the agreed to amount.
  • Business Solutions provide additional functionality and value-add that is targeted at specific vertical markets. These solutions provide analytical tools, and may also be bundled with premium data.
  • the Business Solutions suite consists of multiple Business Solutions, each with its own discreet functionality and separate UI elements. The ente ⁇ rise spatial system needs to be designed so that access to each Business Solution can be turned on or off for a given customer, independent of all other Business Solutions.
  • the ente ⁇ rise spatial system has three Business Solutions available (A, B, and C), then the ente ⁇ rise spatial system allows for any combination of these Business Solutions to be available to a customer (i.e., No Business Solutions, A only, B only, C only, A & B, A &C, B & C, A & B & C).
  • the availability of Business Solutions is tied to user roles, so that within a company, some users may have access to Business Solutions while others do not. Also, different users may have access to different subsets of Business Solutions.
  • the next "Premium Addition" variable that is considered as part of the pricing support relates to the customer's use of premium data.
  • Premium data will include, for example, ADS-40 imagery, but may also include, for example, other data that the ente ⁇ rise spatial system has to pay a "per use" license on. Therefore, support for premium data assumes that any type of data can be charged to the user as premium data.
  • the customer is charged more based upon the use of Premium Data.
  • the service charges to the customer is based upon: the quantity of data (e.g., square miles), the quality of data, and the type of data.
  • a pricing grid that shows quality of data on one axis and type of data on the other may be used to determine price. The pricing in the grid is per square mile, so multiplying this number by the square miles of that data will yield the price, hi some cases, Premium Data is bundled with Business Solutions. As a result, a customer may choose not to pay for any Premium Data, but still access certain types of Premium Data by subscribing to Business Solutions.
  • determining the price for the premium data is automated.
  • sales individuals of the ente ⁇ rise spatial environment discuss the data needs with the customer upfront, and decide upon the total amount of Premium Data that the customer anticipates using on a monthly basis, and this is built into that customer's monthly charges.
  • the ente ⁇ rise spatial system tracks all usage of premium data, tied to the user name, so that at the end of each month, analyses can be conducted to determine whether the total amount of Premium Data that the customer actually uses is more than anticipated. If so, sales individuals are responsible to adjust the monthly fee for Premium Data.
  • the ente ⁇ rise spatial system is able to modify the service fee paid by a customer after the account has been established, with a line item in the billing labeled "Premium Data costs". Whenever the ente ⁇ rise spatial system introduces new data to its offerings, a "quality" level os associated to the data, along with a "type” tag.
  • the Premium Data used by a custom is tracked in detail, allowing for the generation of a report that includes, for example, the following fields: Date, User Name, Customer Account. Name of the data, the quantity of data used (e.g., in square miles), the quality of the data, the data type, and Output (e.g., map, download, analysis).
  • Restrictions prevent certain users from accessing premium data.
  • every user in addition to giving every user a role, every user is given a "yes/no" classification with respect to accessing Premium Data.
  • the ente ⁇ rise spatial system provides extensive reporting, allowing for flexible reports to be generated on the various types of information that are being tracked.
  • the ente ⁇ rise spatial system e-commerce system may to interface with an accounting system outside of the ente ⁇ rise spatial system environment. The data tracked and stored in the e commerce system can be exported into the accounting system for billing purposes.
  • the ente ⁇ rise spatial system user interface has been designed with the notion that the ente ⁇ rise spatial system may to offer partners or co ⁇ orate customers a co-branded version. Therefore, there are a number of "placeholders" for various branding elements in the user interfaces. A partner can select which of these elements, if any, are appropriate to provide the partner with sufficient co-branding value.
  • the Welcome UI screen is a useful tool in providing communications with the ente ⁇ rise spatial system users. Since the ente ⁇ rise spatial system software has been designed to pull these communications from "non hard-coded" sources, these communications can be provided by the Partner to the ente ⁇ rise spatial system, allowing the Partner's messages to get dhectly to the users of their co-branded offering.
  • FIG. 158 illustrates co-branding for a welcome UI screen 15810 in accordance with certain implementations of the invention.
  • the banner graphic that typically is used is a the ente ⁇ rise spatial system branded graphic, but in the case of a co-branded offering, the Partner has the option use this space to integrate it's own graphics, and thus its own branding, into the ente ⁇ rise spatial system software.
  • the header graphic has the option to have a Partner URL link embedded in it, so that if a user clicks on the header graphic, the user can be taken to the Partner's site.
  • a new browser window will automatically be launched. The new window will link the user to the partner-designated URL.
  • This URL needs to be flexible, to allow for quick changes and the ability to rapidly deploy co-branded versions of the ente ⁇ rise spatial system.
  • the ente ⁇ rise spatial system requires that the ente ⁇ rise spatial system logo still remain on a co-branded banner. In this case, a URL link is requhed for this logo as well.
  • the ente ⁇ rise spatial system will allow the company to have a company news section on the portal page. Company news is an area set aside strictly for the company to be able to communicate directly to theh staff. In certain implementations, the company is responsible for this content. Each company may assign someone to author the content that appears here, and the ente ⁇ rise spatial system may point to their URL from within the portal. This makes all management and review of the content the company's responsibility.
  • FIG. 159 illustrates an example of a co-branded version of the main UI screen 15910 in accordance with certain implementations of the invention.
  • the banner graphic the same details apply as on the Welcome UI screen.
  • the graphics that make up the frame for the various functional areas of the main UI screen can be changed out for co-branded version. As a result, the color of the entire frame and the styling of the header can be customized for the co-branded experience.
  • the graphical elements that make up the pull down menus can be customized for every partner. This may mean that in addition to having a different look, co-branded menus may have different names.
  • the ente ⁇ rise spatial system software supports an architecture that allows the ente ⁇ rise spatial system to host the main software, but also branch off to other software that may be hosted by a partner of the ente ⁇ rise spatial system.
  • the ente ⁇ rise spatial system links to other software through a tab control interface.
  • the partner would be hosting the "WebCruiser, Web Reports, and Calculators applications on their sites. From these application sites, the partner would provide similar links back to the co-branded ente ⁇ rise spatial system software site.
  • the Partner may add co ⁇ orate GIS data into the ente ⁇ rise spatial system software.
  • the ente ⁇ rise spatial system provides a means by which the data is brought into the back end (e.g., ente ⁇ rise spatial system employees process data into the ente ⁇ rise spatial system or a user interface that automates the enthe process and allows the user to upload data from theh system dhectly into the ente ⁇ rise spatial system back end may be used).
  • the ente ⁇ rise spatial system also provides secure access to this data.
  • the data that co ⁇ orations will provide is often highly sensitive, the ente ⁇ rise spatial system ensures that only those who should have access to the data get access to it.
  • the ente ⁇ rise spatial system integrates the selection of the co ⁇ orate data layers provided by the customer into the ente ⁇ rise spatial system UI. Co ⁇ orate data layers appear in the same area as the ente ⁇ rise spatial system data layers. However, when co ⁇ orate data layers are present, an additional tab category will exist that contains the co ⁇ orate data (the title of the tab and it's tool tip are provided by the partner). This is the co ⁇ orate data category, and is located immediately to the right of the show all categories tab. In addition, within the "all categories" tab, the co ⁇ orate data is the first section of data to be displayed.
  • FIGs. 160 and 161 illustrate examples of a pop up dialog box 16010 and of a co-branded version of a secondary UI screen 16110 in accordance with certain implementations of the invention. In both cases, there are elements that can be co-branded on these types of UI screens.
  • the standard pop up dialog box has a subtle graphical background of a topographical map in a shade of the ente ⁇ rise spatial system brown.
  • the Partner can select from any of the following choices to occupy the background graphic window: a Partner provided co-branding graphic, the default the ente ⁇ rise spatial system background graphic or a solid colored background.
  • the graphics that make up the frame for the various functional areas of the main UI screen can be changed out for co-branded version. As a result, the color of the enthe frame and the styling of the header can be customized for the co-branded experience.
  • FIG. 162 illustrates a table 16210 of valid US state codes in accordance with certain implementations of the invention.
  • the state codes are valid for use in drop down boxes that require customer input of U.S. state information.
  • FIG. 163 illustrates a table 16310 of information to display in the Ambiguous Address pop up dialog box in accordance with certain implementations of the invention.
  • Table 16310 provides the types of information that are displayed to a customer in the ambiguous pop up dialog box, based upon the types of information that the user has provided to the ente ⁇ rise spatial system. Depending upon the information that was provided by the user, the information that is displayed within these cells will vary. The types of information that is displayed are all of those types of information that the user provided, plus any higher-level information that the ente ⁇ rise spatial system could extrapolate.
  • the specific rales are provided in the table 16310.
  • FIG. 164 illustrates a table 16410 of map layers of scale dependency in accordance with certain implementations of the invention.
  • FIG. 165 illustrates a table 16510 of some raster and vector data to be used in the ente ⁇ rise spatial system software in accordance with certain implementations of the invention.
  • Other data sets such as premium data for oil/gas/electric and public lands survey data, may also be available, although not represented in table 16510.
  • FIGs. 166A and 166B illustrate another table 16610 of some raster and vector data to be used in the ente ⁇ rise spatial system software in accordance with certain implementations of the invention.
  • the ente ⁇ rise spatial system provides application services and integrates and offers on-demand superior quality geographical imagery, associated industry specific data and analysis tools to government, industry and the general public.
  • the ente ⁇ rise spatial system' accurate and continually updated geographical information is offered by both one-time use and periodic subscription based models.
  • the ente ⁇ rise spatial system service is made up of several areas, including, for example: GIS Data Sources (e.g., aerial/satellite geographical imagery and public domain information; an ADS Processing Center for ADS400 Arial GIS imagery processing prior to delivery to the GIS Processing Center; a GIS Processing Center for integration and formatting of aerial, satellite and public domain information for delivery to an Operations Center; an Operations Center, which provides software development, data validation, production staging, network operations, fulfillment support and tier-two customer service; a Web Center, which is a Web based, ASP model service providing ' on-demand access to geographical imagery data mart and membership data; and an Order Fulfillment Center for order processing and customer data request fulfillment.
  • GIS Data Sources e.g., aerial/satellite geographical imagery and public domain information
  • GIS Processing Center for integration and formatting of aerial, satellite and public domain information for delivery to an Operations Center
  • an Operations Center which provides software development
  • Both the Operations Center and Web Center are housed in facilities using infrastructure consistent with running a high availability, global intemet operation.
  • the Data Sources that are processed by the Data Center are provided through a combination of the ente ⁇ rise spatial system managed and out-sourced suppliers.
  • Aspects of the various centers maybe split or merged depending upon, for example, the logistical constraints on the locations of GIS and development personnel expertise. Provisions to support center functional separation will be indicated herein. The following discussion will be dhected to the overall service and operational functionality to be provided by the Web Center.
  • the functional components requhed to host the the ente ⁇ rise spatial system on-line service offering in a third party hosted Web Center include, for example: all systems contained within the Web Center that are used to support service offerings; all system interface points into, or out of, the center for both normal operations and maintenance; and any reliance on external systems supporting Web Center operations.
  • the ente ⁇ rise spatial system Web Center is a secure, un-staffed, ASP model web hosting facility.
  • the pu ⁇ ose of the Web Center is to host the ente ⁇ rise spatial system on-line service offering that provides data (e.g., current GIS imagery and supporting data) and business analysis tools to its customer base.
  • the Web Center receives and hosts integrated datasets from the Operations
  • Order Fulfillment Center provides the ente ⁇ rise spatial system customer base access to these datasets in an adhoc, on-demand basis, and processes the billing of associated customer usage charges and orders. All customer order fulfillment beyond the adhoc image and data queries such as bulk data requests shall be forwarded to, and processed by, the Order Fulfillment component.
  • FIG. 167 illustrates the business process and data flow 16710 supported by the ente ⁇ rise spatial system service and operational facilities in accordance with certain implementations of the invention.
  • the Web Center's role in the business process is as both an analytical datamart for the on-demand access by ente ⁇ rise spatial system customers and as a catalog of all current and historical data (e.g., imagery plus supporting data) available for bulk purchase.
  • the ente ⁇ rise spatial system service offering hosted by the Web Center can be grouped into functional service groups, which are illustrated in FIG. 167.
  • Each of the services groups is made up of a set of components that provide part of, or support part of, the overall service offering.
  • Web Services a Web based user interface exposes the core business and administrative functionality of the Business Application Services to clients (e.g., browser only, thin client, and thick client).
  • application Services a stateless, transactional application service exposes business functions for access control, content navigation, content delivery, account management and administration services that can be accessed in either a client/server or server-to-server model.
  • a set of middle tier application components accessed 03 08296
  • a set of middle tier application components accessed through the applications services handle account financial, billing, and payment functions.
  • a set of data stores contain live production data uses to support continuous operations including a user membership data store, a special image data mart, a business rales data store, and a health & welfare data store.
  • a set of Web Center administration services used on a continual/scheduled basis to maintain and monitor the Web Center operations include, for example, spatial dataset loaders, health & welfare management servers, and archival/restore servers.
  • the Web Services a Web Server based user interface, is the primary external interface to access the Application Services.
  • the Web Services interface exposes the core business and administrative functionality of the Application Services to all Web Center clients. These clients shall include, for example, both the ente ⁇ rise spatial system customer base and the ente ⁇ rise spatial system operational staff.
  • the Web Service provides a user interface to navigate the Web Center's site and execute the Application Services via the access control security layer. Once authenticated, the suite of Application Services available to the client shall be adjusted based on their access level and granted role.
  • the Web Services access business related Data Services via the Application Services. FIG.
  • Web Services 16810 illustrates Web Services 16810 in accordance with certain implementations of the invention.
  • the Web service allows client functionality access through different types of client interfaces, such as, browser-only client; thin client; and thick client.
  • client interfaces such as, browser-only client; thin client; and thick client.
  • the use of a specific client interface depends upon individual users needs and business constraints dhecting theh implementation.
  • a browser only client is supported to allow clients to access the system without requiring a downloaded plug-in or control. This feature requires almost all client processing to be accomplished in the middle-tier application layers of the Web Center. In certain implementations, not all service functionality is available to browser only clients. Exact limiting features are determined, for example, based on architectural feasibility.
  • the ente ⁇ rise spatial system provides a web browser based user experience enabled by a thin client downloaded browser plug-in or control.
  • the thin client solution is designed to interact, and exchange data between, the resources on both the clients local computer and the application middle tier services in the Web Center.
  • the downloadable plug-in or control is designed to provide the full client functionality feature set with an efficient performance profile over all client network connections from a minimum of a 56K modem and higher.
  • Multi-platform support including, for example, Intemet Explorer® and Netscape® browsers (both 4.x and higher) on Windows®, Macintosh®, and Linux® operating systems
  • a Java solution is used to satisfy the multi-platform support constraints.
  • the thin client solution interfaces with the Web Services via standard intemet protocols including HTTP, HTTPS and FTP. Authenticated connections are supported over, for example, a standard, 128 bit SSL session.
  • the thin client component to be downloaded is downloadable in a reasonable time period over the minimum support network connection speed. A reasonable time period maybe, for exmaple, between 30 seconds and 2 minutes. Thin client design considerations is implemented in concert with the Application and Data Services tiers to maximize the resource availability and performance characteristics of the intended client functionality to be supported.
  • the thick client interface solution requhes no user interface provided by the Web Services.
  • the thick client interface solution may be implemented as an additional connector on an altemate web server port exposed to the intemet to accept and pass thick client requests through to the Business Application Services layer.
  • the thick client application is subject to the same network connectivity requirements as the thin client solution.
  • the thick client application supports, for example, all functionality available to the thin client solution and may support additional functions or features.
  • the role of the client interface component of the ente ⁇ rise spatial system Web Services is to deliver flexible, on-demand access to the comprehensive suite of data (e.g., imagery, vector, and tabular) and analysis functionality as both an interactive analysis service and as a catalog for bulk data ordering fulfilled through the Order Fulfillment desk.
  • the complete set of client functionality includes, for example, both the interactive analysis features and additional administrative/account management support requhed to provide a comprehensive, consumer business service.
  • the ente ⁇ rise spatial system supports two different customer models: subscription user and one-time, transaction-based customer. When first attempting to access the ente ⁇ rise spatial system service, every customer registers an account with the service regardless of the type of customer. In the case of the subscription user with a site license account, an ente ⁇ rise spatial system representative may register the customer using the ente ⁇ rise spatial system Admin tool. For transaction-based customers, registration may be handled using a short registration wizard.
  • the registration wizard process is very quick and simplified, so as not to serve as a barcier to entry for these new customers.
  • the main goals of the registration process is to get the user's email address (e.g., for communications), and assign the user with a user name and password (e.g., for usage tracking and credit card storage).
  • Registration information includes, for example, general information about the customer and billing information.
  • the registration process is designed to be a one-time experience for the customer. Once the customer has completed the registration process, the customer will have a usemame and password and be able to login to the ente ⁇ rise spatial system service.
  • the ente ⁇ rise spatial system will be trusted to handle various types of information that are of a sensitive nature to the user, including personal contact information and billing/credit card information. All sensitive customer information is protected to assure that the trust of the wide customer audience is not violated. As a protection to the customer, a secure login procedure is used to ensure that only authorized individuals have access to a given account. 03 08296
  • utilizing a login process allows the collection of invaluable information regarding customer usage. The option also tracks and uses customer's usage to tailor personalized communications to that user.
  • the login process serves as the entry point for users accessing the ente ⁇ rise spatial system. The process involves retrieving and verifying the validity of the user name and password provided by the person attempting to login to the ente ⁇ rise spatial system application.
  • the "Online Mapping" button is available to transaction-based customers. This button provides the user with access the Online Mapping wizard, which provides the majority of functionality to the transactional user. The functionality provided by the Online Mapping wizard can be broken down into two main sections: map creation and map purchasing.
  • the first part of the Online Mapping wizard provides several UI screens that allow the users to undergo the process for creating a map, including, for example: selecting the Area of Interest (AOI); selecting the base map image; selecting the various data layer features; and, setting up the look and feel of the map.
  • the user views the working map in a viewing window on the right hand side of the UI screen.
  • the user defines the location of the map for example, by National Map selection or Advanced Location Search.
  • the National Map selection feature allows the user to visually select the area from a national map by clicking on the deshed location. After the user clicks on the desired location, the map window shall zoom to include, for example, only the area that the user selected. At this point, the user can click further to refine the selected map window view.
  • the Advanced Location Search option allows the user to type in information that defines the location, including the address, city, state, and country.
  • the map window shall zoom in to the desired location.
  • the base map image format is selected to suit the user's needs by defining several image attributes.
  • the type of image to be used for the map is defined. Once the user has selected the area covered by the map, the user will be presented with choices for the type of image to use for the map.
  • the types of images available for creating a map will vary depending upon the map area that the user has defined, but may include, for example, color aerial imagery, color infrared, satellite imagery, USGS topographic maps, and others.
  • the map resolution is defined. The resolutions available to the user will be dependent upon the map area and type of image that the user has selected.
  • the map contains an embedded watermark as part of the base image. This watennark is removed during the map purchase process and is not included in the final image delivered to the consumer.
  • the type of image attributes available to the consumer is based on a subscription level and associated access rights.
  • the user can then select from various "data overlay” features.
  • These features provide data (e.g., geographic) in a manner that can be overlaid and matched up with the map.
  • the categories of features that can be overlaid include, environmental, political boundaries, infrastructure, and demographic data.
  • the user is able to manipulate the specific features and their attributes that are overlaid on the base map image.
  • the following modifiable attributes are supported for the data layer overlays: the number and type of data layers overlays; the order that data layers are overlaid on the base image; the text font, point size and color; and, the line type, color and thickness.
  • the type of features available to the consumer is based on subscription level and associated access rights.
  • various industry-specific data layers may be available (e.g., electric line right of ways).
  • the data available to overlay on the base map is determined by the services that the customer has subscribed to.
  • the look and feel of the working map can be adjusted using the various tools on the map toolbar.
  • a map toolbar with a set of functions is available at any time that a customer is working on a map-related task.
  • a Zoom In tool is the default tool. By selecting the zoom in tool and clicking on the map, the map area will zoom in by 50 %, centered at the click point. By selecting the Zoom Out tool and clicking on the map, the map area will zoom out by 50%, centered at the click point.
  • a Previous Image tool is available after the user has either zoomed or panned an image. Selection of this tool followed by a click on the map reloads the image that had previously occupied the Map Window.
  • Point n' View tool After selecting a Point n' View tool, the user is able to click on any data element overlaid on the current map, and a pop up dialog box containing a description of that element will appear.
  • the data presented will vary based upon the type of data element that the user has selected.
  • the Point n' Attribute tool allows a user to click on any object on the current map, type in various categories of information that describes the object, and then automatically save out these associated descriptions as a data store record attached to that object.
  • the Text Drawing tool allows a user to click on any point on the cunent map, type in text information and then automatically save out these associated as a data store record attached to that map point.
  • a series of tools will be provided that allow users to type in text to be overlaid on the map, or draw basic shapes such as squares, chcles, lines, and polygons that are layered on top of the map.
  • a Rectangle Drawing tool allows users to add squares and rectangles on top of their maps.
  • a Chcle Drawing tool allows a user to click on any point on the cunent map, insert a circle, adjust the diameter and then automatically save out these associated as a data store record attached to that map point.
  • a Line Drawing tool allows a user to click on any point on the cunent map to start a line, click on a second point to end and draw the line, and then automatically save out these associated as a data store record attached to the map.
  • a Custom Shape Drawing tool allows a user to click on any point on the current map to start a line, click on any number of subsequent connected points to draw additional lines, and the press escape to end the shape and automatically save it out as an associated data store record attached to the map.
  • the consumer is provided a set of final formatting options to facilitate a printed form of image for presentation. These options shall include, for example, the following attributes: Map Title and Description, Map Size and Layout, and Other Display Options.
  • the map purchasing functionality is accomplished through the shopping cart module in the ente ⁇ rise spatial system.
  • the pu ⁇ ose of the shopping cart module is to provide a means by which the ente ⁇ rise spatial system can conduct transactional-based purchases.
  • the shopping cart provides an interface to the user that walks the user through the process of approving the transaction and following it through completion.
  • the shopping cart process involves multiple steps, including, for example gathering various types of information requhed for the transaction, such as, contact infonnation, shipping information, billing information, and more.
  • the shopping cart module presents the user with a summary of the proposed transaction, for verification by the user prior to executing the transaction.
  • the transaction is conducted with the ente ⁇ rise spatial system servers, after which the user is provided with an acknowledgment of the transaction that can be printed and stored as a physical record of the transaction.
  • the UI screen design has been designed, so as to allow the ente ⁇ rise spatial system software to easily interface with and utilize various shopping cart technologies available on the market.
  • an advanced user experience is provided to augment basic map generation with GIS analysis tools and other functions.
  • some sets of tools are provided to the subscription users to help them in their analysis. These tools shall include, for example, GIS buffer creation, measurement, and annotation tools.
  • Creating buffers allows the user to create a buffer area from a data element, user defined point, or a segment on the map. The pu ⁇ ose of the buffering tool is to ultimately highlight a type of data within that buffer area.
  • the user can defme the buffer area by clicking on the preview of the map. If the user selects a data element, that data element will be highlighted. If the user selects on segment of a data element (e.g., a segment of a stream, road, power line right of way, etc.) then that particular segment is highlighted.
  • segment of a data element e.g., a segment of a stream, road, power line right of way, etc.
  • the linear distances tool allows users to measure a linear distance between two points on the map. After selecting this tool, the user identifies 2 points on the map (e.g., in the preview window). The distance between the two points is returned via an "info window".
  • the "info window” may be a specified area on the page for tool responses or a separate small window (e.g., whichever is "cleaner”). An additional “tracking log” may be used to store this response for reporting at a later date. In certain implementations, the measurement may not be overlaid on the map just reported to the user in the "info window".
  • the distance can be represented in any of several units.
  • the answer is reported with multiple units (e.g., in both miles and kilometers, or feet and meters) depending on map scale. This additional requirement would support internationalization for non-US (metric) users.
  • the user defined areas tool allows users to measure an area enclosed within multiple points. After selecting the measure area tool, the user identifies as many points on the map as requhed to define the boundaries of the desired area (e.g., in the preview window). After all points required to enclose the area have been defined, the area is calculated and returned via an "info window". In certain implementations, the "info window” and/or the "tracking log” function in the same manner as described for linear distances.
  • the area is reported in miles squared (i.e., mi 2 ) (km 2 ), acres (hectares) and/or feet squared (ft 2 ) (m 2 ).
  • Area scale thresholds are defined and used to determine which units to use. For example, miles (km) and square miles (square kilometers) would be used at scales less than 1 : 50,000 and other units at scales greater than this.
  • the answer is reported with multiple units (e.g., in both miles and kilometers, or feet and meters) depending on map scale. This additional requirement would support internationalization for non-US (metric) users.
  • the ente ⁇ rise spatial system service features include, for example, annotation tools that operate in a similar manner to the measurement tools.
  • the annotation tools include, for example, support for both linear distances and user defined areas.
  • the linear distances tool allows users to annotate a linear distance between two points on the map. After selecting this tool, the user identifies 2 points on the map (e.g., in the preview window) in the same manner as they measure linear distances. Unlike the measurement tool, the 2 points, line and distance are overlaid on the map. An additional tracking log may be used to store this response for reporting at a later date.
  • the distance can be represented in any of several units.
  • the answer is reported with multiple units (e.g., in both miles and kilometers, or feet and meters) depending on map scale. This additional requhement would support internationalization for non-US (metric) users.
  • the user defined areas tool allows users to annotate an area on a map indicated by multiple (e.g., three or more) points. After selecting the annotate area tool, the user identifies as many points on the map as required to defme the boundaries of the desired area (e.g., in the preview window) in the same manner as they measure user defined areas. Unlike the measurement tool, the points, interconnecting hnes and area calculation are then overlaid on the map.
  • the "info window" and/or the "tracking log” function in the same manner as described for measuring linear distances.
  • the area is reported in miles squared (i.e., mi 2 ) (km 2 ), acres (hectares) and/or feet squared (ft 2 ) (m 2 ).
  • Area scale thresholds is defined and used to determine which units to use. Initial expectations are that miles (km) and square miles (sqkm) would be used at scales less than 1:50,000 and other units at scales greater than this.
  • calculations may use and report multiple units (e.g., in both miles and kilometers, or feet and meters) depending on map scale. This additional requirement would support internationalization for non-US (metric) users.
  • the ente ⁇ rise spatial system will offer reports that provide detailed breakdowns of that data within the location boundaries defined by the user. The breakdown of information will be unique for each type of data. A data layer is supported. This functionality may additionally be provided to transactional customers.
  • the ente ⁇ rise spatial system will provide functionality that allows users to print out a copy of the map, or save the map for later use. If the user chooses to print out a hard copy of the map, the ente ⁇ rise spatial system allows the user to define various attributes that define the layout of the printout. To address the issue of transactional users obtaining products without paying for the products, a watermark is overlaid on all served base imagery prior to purchase.
  • the ente ⁇ rise spatial system provides for the selection and ordering of a bulk dataset.
  • a bulk dataset is selected in a similar manner to individual map images.
  • a difference between map and bulk data purchases are that no direct image is rendered and delivered immediately to the consumer.
  • individual imagery or data layer feature datasets may be purchased separately or together, either overlaid or as separate datasets.
  • the general user experience differs only in the few areas applicable to the preview and delivery differences to support ease of use.
  • the ente ⁇ rise spatial system allows customers to create unique profiles that describe which data layers are available to the customer, how various preference settings are setup, and more.
  • the customer profile function allows subscription customers to edit theh registration and payment information.
  • the change subscription level feature allows users to change the subscription plan that they have signed up for. In certain implementations, this feature is broken out from the user profiles feature for marketing purposes.
  • the user can access online help UI screens at any time by selecting the "Help" button in the primary navigation bar.
  • the ente ⁇ rise spatial system Help file is intuitive for the user, having a look and feel that is common to online applications.
  • the user interfaces for all Administration functions are implemented as browser based and hosted by the Web Services.
  • a set of consoles for accessing the Admin Tool functions are housed both in the Operations Center and also in the Web Center for local administration when personnel are there.
  • the general set of Admin functions supported include, for example: Access Control Management, SKU / Billing Plan Management, Account Registration Information, Activity History, Order Status / History, Billing Status / History, Payment Status / History, Correspondence History, and System Maintenance.
  • Each of the various Web Center systems have differing functional roles but all are centrally managed using the common Administration user interface. Each of the systems may support a customized Administration user interface.
  • All business application functionality available in the Web Center is protected by an Access Control management system. The Access Control system is role based with a set of roles both predefined and configurable as different combinations of functionality is required. Each business application function available in the Web Center is individually controllable as a right granted or revoked from a specific user role. All client access, operations or consumers, is controlled using pre-assigned roles.
  • the Admin Tool allows the operations personnel the ability to: view a list of all available roles; view a list of all available business functions; view a list of all roles that contain a specific business function; view a list of all business functions contained in a specific role; add, remove and/or modify a specific role; add or remove a business function to or from a specific role; view a list of all accounts, both operations and customers, that have a specific role; and, add, remove and/or modify the role assigned to a specific account. All non-registered, transactional consumers are granted access to a limited set of the system's business functions under an automatically granted 'Unregistered User' access role.
  • the ente ⁇ rise spatial system provides different billing models, including: Transactional charges and Subscription billing.
  • the Admin Tool supports the management of different datasets, one for each billing model.
  • Transactional Billing Accounts configured for transactional billing is billed based on transactional usage controlled through the Application Services.
  • All Application Services for which it is determined that transactional charges apply are configured with a SKU comprising charge details and rales. All charge SKUs are associated with Application Service transactions.
  • Transactional charge SKUs contain, for example, the following infonnation/attributes: SKU ID, SKU Description, SKU Status, and Dash Number business rule list (with Dash #, rule criteria and amount).
  • All SKUs contain one or more specific charge rates.
  • Each charge rate is uniquely configurable based upon optional business rales to allow for different billing rates given different purchasing conditions.
  • Each unique billing rate for a particular SKU is uniquely identified by a dash number suffix appended to the SKU Id. All SKU business rules are configured to resolve to a single SKU dash number under all conditions.
  • the Admin Tool allows the operations personnel to: view a list of all SKUs in the system; view a list of all dash numbers for a specific SKU; view a list of all transactions executed for a specific; SKU; and, add, modify or remove a SKU or SKU dash number.
  • Each list report is ordered chronologically in reverse order (if applicable) and filtering is allowed using any combination of the criteria recorded including a Date Range.
  • Rate Plan ID a billing Rate Plan
  • Rate Plan Description a billing Rate Plan
  • Rate Plan Status a billing Rate Plan
  • Dash Number business rule list with Dash #, rule criteria and amount
  • Current Dash Number a billing Rate Plan
  • All Rate Plans contain one or more specific charge rates.
  • the rules and charge amount for each charge rate is uniquely configurable to allow for the revision of an existing rate plan while grand fathering all existing users of that rate plan.
  • Each unique Rate Plan is uniquely identified by a dash number suffix appended to the Rate Plan ID. All Rate Plan business rules are configured to resolve to a single Rate Plan dash number under all conditions.
  • the Admin Tool allows the operations personnel to: view a list of all Rate Plans in the system; view a list of all dash numbers for a specific Rate Plan; view a list of all transactions executed for a specific Rate Plan; and, add, modify or remove a Rate Plan or Rate Plan dash number.
  • Each list report is ordered chronologically in reverse order (if applicable) and filtering is allowed using any combination of the criteria recorded including a Date Range. The chronological order can optionally be reversed.
  • the Admin Tool allows operations personnel to view a list of all system accounts.
  • the operations personnel are allowed to filter the list by various criteria to limit the list of users returned from the account query.
  • the operations personnel are able to select any individual account listed in the system and view the account information for that particular account.
  • Account information includes, for example, the following items as a minimum set of data: Account ID; Account Name (e.g., short account name); Account Password (e.g., adheres to safe password criteria and is stored encrypted); Account Email Address.
  • Account Type e.g., Transactional, Subscription, Operations); Account Access Role; Account Status (e.g., Active, Restricted, Closed); Account Holder Full Name (e.g., First, Last, Initials); Mailing Address City, State/Province, Country, Zip/Postal Code; Phone & Fax; Demographic data; Billing Method (e.g., Transactional or Subscription); Billing Rate Plan (e.g., if Subscription); Payment Method (e.g., Automatic Credit Card, Statement, or Bill Parent Account); Payment Tax Status/Rate, Billing Status (Current, 30 Days, 60 Days, 90 Days, Over 90 Days); Billing Address, City, State/Province, Country, Zip/Postal Code; Credit Card Information (e.g., CC #, Exp.
  • Account Type e.g., Transactional, Subscription, Operations
  • Account Access Role e.g., Account Status (e.g., Active, Restricted, Closed); Account Holder Full Name (e.g., First
  • Some of the data items in the system are optional entry items. Additional services to validate Zip/Postal codes, email, and phone/fax numbers are implemented to reduce potential customer services calls and improve overall consumer experience.
  • account information is collected at the end of the shopping cart purchase experience.
  • the basic information entered as part of the transactional account registration include, for example, the minimum amount of information to validate and process the credit card charge. All transactions performed under the same session is attributed to the same account id. Attempts are made to match credit card information and/or source IP information to link subsequent transaction to an existing un-registered user's account for historical analysis.
  • the ente ⁇ rise spatial system personnel with the ability to create consumer accounts process an account application and manually create and manage the consumer's account using the Admin tool.
  • the Admin Tool provides, for example, the following functions: adding or modifying an account and its information; adding a child account to a parent account; and, generating a notification email to the account holder. All changes to basic account information automatically generate and hansmit a confirmation email to the account holders email address. All changes to child account information additionally generate and transmit a carbon copy (CC) email to the parent account holders email addresses.
  • CC carbon copy
  • the Admin Tool provides the ability to add or modify an operational account and its information. All operational accounts are created as child accounts of the ente ⁇ rise spatial system master account. All operational account changes shall automatically generate and transmit a confirmation email to the account holders email address. All changes to and operational account shall additionally generate and transmit a carbon copy (CC) email to the master the ente ⁇ rise spatial system account email addresses.
  • CC carbon copy
  • the Admin Tool provides the ability to view a historical list of all transactions performed by the Web Center Application Services. Each transaction is recorded with, for example, the following information criteria: Account ID (Un-registered users automatically have an account assigned based on session), Transaction ID, Date and Time, Transaction Execution Duration, Transaction Type (using SKU where appropriate), and Transaction Completion Status.
  • the transactional history report is ordered chronologically in reverse order and can be filtered by any of the criteria recorded, including a Date Range. The chronological order can optionally be reversed.
  • Transactional history is recorded on all types of business operations executed by the Application Services including both operations and consumer functions.
  • Each application service transaction executed by a consumer that results in a service order, biUable or not, is assigned an Order ID and recorded in an Order Work Queue for fulfillment. Orders can be fulfilled automatically or by Customer Fulfillment. Those orders processed automatically have only one workflow entry recorded indicating that it was completed automatically. Those orders processed by customer fulfillment is entered in the work queue with the status "Pending Delivery”. These work orders are reviewed continually by customer fulfillment and executed in the order by received. When a work order is completed by Customer Fulfillment, an additional entry is entered in the work queue log for that work order to indicate its completion.
  • the Admin Tool allows the operations personnel to view a list of all work orders for all accounts.
  • Each work order transaction include, for example, the following information/criteria: Order ID, Transaction ID, SKU ID, Date and Time opened, Date and Time closed (same as opened if automated),Order Status (Delivered automatically, Delivered by Order Fulfillment, Pending Delivery),Billing ID, Billing Status (Statement Submitted, Automated billing in process, Paid), Operator / Customer Service User (if not automated), and Notes.
  • the Admin Tool allows the operations personnel to obtain an order work queue report ordered chronologically in reverse order and filtering is allowed using any combination of the criteria recorded including a Date Range. The chronological order can optionally be reversed. Additional administrative reports are added to draw statistical report to analyze order fulfillment processing times to aid in process improvement.
  • Each Application Service transaction SKU that is configured with an associated charge is recorded as a debit in a financial billing log for the requesting account. Each charge will then be collected based on the account's billing mode; either immediately by automated credit card/bank processing or through a monthly billing process. Monthly billings are accomplished by either automated credit card/bank processing or by mailed/e-mailed statements. Regular mailed billings may not be used for non-subscriber accounts. When a billing attempt is successfully processed, a credit is recorded on the account's financial billing log. No charge is recorded until the Order Status indicates that the order has been delivered. Payments made by regular mail is posted to the consumer's account through the Admin tool.
  • the Admin Tool allows the operations personnel to view a list of all billing transactions, both debits and credits for all accounts.
  • Each billing transaction include, for example, the following infonnation/criteria: Payment LO, Account ID (un-registered users automatically have an account assigned based on session), Date and Time, Credit or Debit, SKU ID, Credit/Debit Amount, Credit/Payment method (if credit; Automated, Statement, or Accounting Conection), Debit Type (if credit; On-line transaction or phone order), Billing Status (Statement Submitted, Automated billing in process, Paid), Order Status (Delivered automatically, Delivered by Order Fulfillment, Pending Delivery).
  • the Admin Tool allows the operations personnel to obtain a billing history report ordered chronologically in reverse order and filtering is allowed using any combination of the criteria recorded including a Date Range. The chronological order can optionally be reversed.
  • Each transactional order or periodic account billing that results in a charge paid through the Credit Card/Bank processing system is recorded in a Automated Payment Transaction Queue for record status through completion. Payments processed are entered in the transaction queue with the status "Pending Completion". When the payment system completes the transaction with the financial system, the payment transaction queue entry is updated with the completion time and the appropriate completion status. It is expected that the SET automatic payment system is used to fulfill credit card processing. All SET applicable processing status is accounted for in the payment transaction queue status.
  • the Admin Tool allows the operations personnel to view a list of all payment transactions for all accounts.
  • Each payment transaction include, for example, the following information/criteria: Payment ID, Account ID (Un-registered users automatically have an account assigned based on session), Date and Time initiated, Date and Time completed, Charge amount, Billing Status (Charge in process, Charge Approved/Paid, Charge Denied), and Notes.
  • the Admin Tool allows the operations personnel to obtain an payment queue report ordered chronologically in reverse order and filtering is allowed using any combination of the criteria recorded including a Date Range. The chronological order can optionally be reversed. Additional administrative reports is added to draw statistical report to analyze credit card payment processing times to aid in process improvement.
  • conespondence log All correspondence with a consumer account holder is recorded in a conespondence log (a "conespondence history").
  • Each conespondence entry includes, for example, the following information: Account ID, Date and Time, Conespondence Type (E-mail, fax, phone, statement, mailed notice), Received or Sent, Text of conespondence, Notes, and Operator / Customer Service User (if not automated).
  • the Admin Tool allows the operations personnel to obtain a correspondence history report ordered chronologically in reverse order and filtering is allowed using any combination of the criteria recorded including a Date Range. The chronological order can optionally be reversed.
  • An additional function of the Admin Tool is to monitor and control the various processes, services and systems operating in the Web Center.
  • This user interface is a centralized status and control momtoring console that collects data and feeds-back commands to control various system components.
  • the following functions are supported by on the system management console: the enabling and disabling of individual servers and software components hosted in the Web Center; the shutdown and restarting of individual servers and software components hosted in the Web Center; the monitoring of cunent status of each server and software component hosted in the Web Center; the monitoring of status of each process in the batch process queue; the monitoring of status of each task in a specific processes work queue; and, the modification of all system level business rales.
  • the system management functions control all components of the Web Services, Application Services, E-Commerce Services, Content Services, Data Services, and Maintenance Services.
  • the central component of the Web Center is the Application Service that acts as a functionality provisioning system that binds all Content and Data Services into a cohesive business suite to service client requests posted through the Web Services.
  • the Business Application Services are implemented as a stateless, transaction system that controls access to, and use of, all Web Center services except for the Web Services sub-system.
  • FIG. 169 illustrates an application services overview 16910 in accordance with certain implementations of the invention.
  • the Business Application Service supports all the ente ⁇ rise spatial system business functions requhed by the various client interfaces exposed by the Web Services to the Web Center's external interfaces.
  • the Application Services provides the interface for both the operations personnel and the ente ⁇ rise spatial system' customer base.
  • the Application services shall maintain a session for all client business services requhed. Each session is established upon the initial request posting from the Web Services. Each session is held active as long as the transaction is in process. The session terminates when the appropriate client response is generated and forwarded to the Web Services. Each subsequent client request shall open a new transactional session. Each transaction is logged in an history log to aid in maintenance and performance/usage analysis. [0840] Each client transaction requested is associated with a specific client account to derive granted rights and record transactions against. If no account is identifiable, the Application system shall create and use a non-registered user account instead. [0841] The Application Services ensures that each client requesting a transaction has been granted the right to access that business function.
  • the Application Services validates that the role assigned to the client's account includes, for example, the business function that the client is attempting to execute. If the business function has not been granted, the Application Services denies the client request and forwards that status as a response to the Web Services. If the business function has been granted, then the Application Services executes the requested business function and returns the resulting status and any data that may need to be returned as part of the business functions completion.
  • business functions All functionality exposed by the Application Services to the Web Services is segmented into discreet, atomic transactions called business functions. Each terminal state of each transaction is deterministic to assure an atomic transaction model and that the ente ⁇ rise spatial system is not left in an indeterminate state at any time. Any enor condition encountered is gracefully handled to prevent a partially completed transaction.
  • the business function breaks down the original client request and utilizes the components of the Content and E-Commerce Services requhed to satisfy the overall functional request. The business function layer assures that only the desired system functionality is provided to the client and done so using a secure, role based access control system.
  • business functions can be grouped into three basic categories: Content Navigation, Content Delivery and System Maintenance.
  • an aspect of the Web Center's functionality is a large, spatially oriented data store.
  • This data store contains large amounts of detailed imagery and associated business data.
  • a set of the business functions is implemented to support many different techniques for navigating the large content datasets.
  • the spatial data store is organized using layers of content directories that cover a broad area and have course accuracy. These content directories are used to nanow down queries for data and imagery to a much smaller domain before higher granularity data is requested from the more densely populated layers of the spatial data store.
  • These higher level, coarsely populated datasets are the dhectories that are used by the Web Services to help expose the overall offering to the consumer.
  • This exposure facilitates their navigation of the large volumes of data in a logical and business oriented manner, thereby increasing the usability of the site and the satisfaction of their requirements for the service.
  • horizontal navigation of the datasets is facilitated by bi-directionally cross-referencing of the tabular and spatial data. This further facilitates the ease of consumer movement between the datasets and effectively provides an altemate method for navigating either types of data by approaching one from the other.
  • These business functions requhe broad search criteria and retum large, coarsely orient datasets in retum.
  • the returned datasets are formatted and presented to the consumer for individual item or smaller, windowed selections. These selections are then re-requested using the higher granularity business functions designed for final form content delivery.
  • the Content Delivery business functions are used to retrieve final form data for viewing, analysis and other types of processing.
  • a specific image or associated data layer retrieved is used as the spatial focal point for further client requests for manipulation of that dataset.
  • Altemate business functions are available to size, reformat, crop, layer and otherwise process data (e.g., GIS information).
  • Other Content Delivery business functions are used to format all tabular forms of spatial and non-spatial datasets required to fulfill additional client features. These additional client features include, for example, worksheet oriented data view and other account related administration functions.
  • the third group of Application Services business functions are system maintenance functions used by operations to monitor and maintain systems operations. These business functions are query-based results sets and associated feed-back controls related to administering system within the Web Center.
  • the system maintenance business functions include, for example, transactions used to navigate, analyze and adjust consumer data sets of both E-Commerce and Content Services.
  • Additional Administration business functions are used to monitor and manage the various server resource pools and background management functions including the Health & Welfare System, Replication System and Archival/Retrieval System.
  • the interface model used to access the Application Services is a Client/Server model through the Web Services exposed to both the Intranet and Intemet.
  • the Application Services interface is architected to be client agnostic and allows Server-to-Server interface implementations that can utilize the same transactional interface as the Client/Server model.
  • the Content Services are comprised of a set of middle tier application components accessed through the Application Services.
  • the content services shall generate and deliver business content including images, reports and ads. Each of these services is constructed independently, have dhect access to all necessary spatial and membership data.
  • FIG. 170 illustrates content services 17010 in accordance with certain implementations of the invention.
  • Map Servers to generate geographical imagery combined with data layer overlays
  • Report Servers to generate formatted, non-geographical image oriented content such as reports and emails.
  • Both Content services prepare data for delivery over either the Web or Email.
  • Ad Servers the third Content service, augment web and email user experiences.
  • the Web Center Map Servers generate geographical imagery combined with data layer overlays for client delivery.
  • the Map Servers shall accept Content generations requests from the Business Application Services containing coordinate, resolution and associated data layer requhements.
  • the Map Servers locate, retrieve, merge and prepare all requhed geo-data based on the Business Application Services initial request.
  • the Map Servers navigate the Spatial Datamart to all data requirements.
  • the spatial datamart contains all data requhed to service any geo-image request made by the Business Application Services.
  • the resulting content generated by the Map Servers is delivered back to the Business Application Services for forwarding to the Web Services or attached to an for delivery.
  • the Map Servers support generation of imagery and query datasets in both GeoTIFF and Shape file formats. Additionally, the images and query datasets can be forwarded through the Business Application Services to the Report Server.
  • the Report Servers support the conversion of imagery and/or datasets into a PDF format file for attachment to an email or delivery on a Web page by the Web Services.
  • the Web Center Report Servers format and prepare all non-geographical oriented content for client delivery. The Report Servers accept Content generation requests from the Business Application Services containing raw data, business rales and a presentation template reference.
  • the Report Servers locate and retrieve the requested presentation template and then merge all provided raw data provided into the template. No direct access to the any data service other than the file system that hosts the template files is required. The resulting content is delivered back to the Business Application Services for forwarding to the Web Services or Email Servers for delivery.
  • the Report Servers support generation of emails in, for example, both standard text and HTML formats. Additionally, the Report Server is able to convert the generated content into, for example, a PDF format file for attachment to an email or delivery on a Web page by the Web Services.
  • the Report Servers are used to augment the Web Services content delivery when appropriate and in Web experience areas where aspects of format and layout may be more fluid than the general user experience. Business rules for content format and optional PDF passwords may be used.
  • the Web Center supports Ad insertion services to augment the Web Content. For example, ad insertion may include static ad graphics integrated as part of the standard web experience files. Additionally, dynamic ad content insertion based on account demographics is supported. Additions to demographic data maybe added to support advanced ad servicing decision services and associated business rules. All ad content serviced is tracked and recorded for analysis and ad content provider billing.
  • the E-Commerce Service like the content services, is comprised of a set of middle tier application components accessed through the Application Services.
  • the E-Commerce Services hosts, manages, and delivers supporting e-commerce functionality including Account Management, Billing and E-Mail/Fax services. Each of these services is constructed independently and have direct access to all necessary spatial and membership data
  • FIG. 171 illustrates e-commerce services 17110 in accordance with certain implementations of the invention.
  • the overall E-Commerce functionality includes account management and e-mail aspects, which are integrated with a custom Billing System and accessed by custom Application Service transactions.
  • the following Account Management functionality categories are provided by the E-Commerce Services: Access Control Management, SKU / Billing Plan Management, Account Registration Information, Activity History, Order Status / History, Billmg Status / History, Payment Status / History, and Conespondence History. Each functionality category has a Web Services user interface for administration and to store/manage its related datasets in the Membership Data store.
  • the ente ⁇ rise spatial system services include, for example, an automated Billing System that can track and prepare customer billing statements on both an adhoc and scheduled basis.
  • the Billing System is a one aspect of the overall e-commerce service leveraging components of the Web Service and the Membership Data store.
  • the Billing System is triggered to immediately to process the transaction charge using the credit card payment system. If the client is a registered as a subscription customer, they can opt for either immediate transactional billing or periodic billing. Periodic billing is billed at its appropriate service level billing rate and billed at the end of the monthly billing cycle based on an account billing cycle date.
  • Subscription account periodic billing include, for example, using a batch process to generate account billing statements.
  • the batch process may run daily at one or more specific run times that are adjustable through the Administration user interface.
  • the Administration Services user interface shall also support suspension and resumption of the billing batch process, status review of past, current and daily pending accounts, and manual removal or addition of accounts for billmg. In certain implementations, the batch process would be run at the least busy time of the day.
  • All accounts with a periodic billing cycle date matching the batch run date is processed by the Billmg System and a bill submitted to the customer.
  • Billmg cycle dates are randomly assigned from 1 to 28 during customer registration to assure an even statistical spread of the number of accounts processed by the Billing System each day of the month.
  • the initial task of the batch Billing Process is to query all accounts to process for that day and add them to a processing queue. Then the Billing Process generates and submits the bill for each subscription account in the order they occur in the Billing queue. When generating the statement for each account, the Billing System is able to automatically charge the bill amount to the customer's credit card account through an on-line credit card processing system. If the customer has selected this options, the billing system shall proceed with the automatic charge and update the account status according to the response from the credit card processing system. [0866] The Billing System submits the account billing data to the Report Service for merging with the appropriate billing document template.
  • the specific billing document template used shall depend upon an number of factors including: the method the customer requested to receive their billing statements when they registered; theh account status; and their subscription mode and level.
  • the Billing System submits all billing statements out of the Web Center via email. The customer is able to elect to receive their billing statement directly by email and in on of three formats: text email; HTML email, or PDF attachment email. PDF attachment emails may optionally be secured using a password pre-established by the customer as part of theh account registration process.
  • the Report Service merges billing data with delivery document templates, optionally generates PDF attachments, and then submits the email to the Email Service for routing out of the Web Center.
  • the Billing System shall direct the Report Service to generate a PDF format statement and PDF format mailing label.
  • the generated email with its PDF attachments shall then be directed to the Order Fulfillment desk for printing and regular mail service delivery.
  • Transactional usage data is collected on all customer operations regardless of the clients registration status or billing mode.
  • the e-commerce shopping cart user experience shall omit the price column and total transactional charge lines when transactions are processed on subscription accounts. ,
  • the Web Center Email System provides an asynchronous notification system used to deliver information and content to both the ente ⁇ rise spatial system customers and operational staff.
  • the Email System is primarily used to deliver automated billing statements, user experience notifications, customer fulfillment requests and health & welfare notifications.
  • the Email System receives content and addressing criteria from the Business Application Services using a standard email API.
  • the Email Servers do not perform any manipulation of the content prepared by the Report Servers except where required to support email delivery.
  • the Email System delivers all email using, for example, the standard intemet STMP protocol.
  • Email directed to the customer base is delivered over the public intemet.
  • Email directed to operations or customer fulfillment is delivered over a private intranet with the public intemet serving as an backup.
  • Email receipt notices may be provided in certain implementations.
  • Bulk or batch Email deliveries are supported, and the email servers are provisioned to support potential volume scaling. Fax support is supported using an E-Mail driven fax server hosted in the Operations Center. Use of Fax services is dhected based on user account registration options.
  • the Data Services are comprised of a set of data stores and files systems with theh associated data access servers containing all live production datasets required for continuous operations. Each Data Service is implemented as a separate data store or file system with cross-references stored where necessary to conelate activities and transactions.
  • FIG. 172 illustrates data services 17210 in accordance with certain implementations of the invention.
  • the data services are dynamic data stores. All dynamic data stores are hosted, for example, on a centralized file system or Storage Area Network (SAN) system, such as an EMC or RAID device.
  • SAN Storage Area Network
  • the SAN device may be used to centralize the administration of all dynamic data stores.
  • the optimal design for the implementation of the SAN devices is a dhect connection to each server in the Web Center on an altemate physical interface (such as Fibre Channel) separate from the LAN used for server-to-server communications.
  • the storage on the SAN device is partitioned to ensure security between servers.
  • E-Commerce / Membership Data store Access to the functionality provided by the Web Center is controlled through the E-Commerce / Membership Data store.
  • the E-Commerce Data store is integrated together with the access control service and e-commerce system by the Business Application Services to control the administration, provisioning and usage billing for all system services.
  • the E-Commerce / Membership Data store contains support for user data components, such as: Access Control Management (a system level data store of Access Roles and their associated rights to access Business Functions and Functional Attributes); SKU / Billing Plan Management (a system level data store of billable operations with descriptions, pricing data and any applicable business rules); Account Registration Information (account details including name, address information, billing information, account options, account status and access rights for both operational and customer accounts and access to any Web Center functionality requhes and active account in the E-Commerce Data store); Activity History (a history of all transactional operations performed or requested by each individual account); Order Status/History (a history and cunent status of all pending and processed customer orders both manual and automatically fulfilled); Billing Status/History (a history, or ledger, of all service charges and associated payments against made against an individual account); Payment Status/History (a history and cunent status of all pending and processed automated credit card transactions); and, Conespondence History (a history of all communications sent to and/or received from the account
  • the E-Commerce Data store is implemented as a directory oriented data store and, in certain implementations, is intended to leverage industry standard components.
  • the E-Commerce Data store may be an LDAP compliant data store engine with a programmable transaction interface and support for customizable data objects and schema structure requhed for the above datasets.
  • Microsoft® Site Server may be used.
  • the Spatial Datamart is an integrated dataset containing all geographical imagery and related data layers requhed to support the full client user experience.
  • the Spatial Datamart is designed and/or selected based on support of various criteria, such as: Multiple/simultaneous spatially oriented index method including Latitude/Longitude and UTM, and the final index types to be used are driven by, for example, empirical testing; Granularity and dataset size limitations on queries with broad coordinate ranges, and this is accomplished through pre-configured index layers and associated images that merge a volume of data points at a lower layer into a single, summary image containing a data point overlay of those points as part of the image, and the exact number of layers and summary images shall depend upon, for example, empirical analysis, and may vary between various dataset sections of the datamart; VLDB dataset partition management organized based on spatial coordinate distribution, and one primary index is chosen to spatial data partitioning around; Top tier industry standard raster
  • this is expected to be GeoTIFF and Shape files; Spatial index links to supporting tabular datasets for cross-referencing and altemate query orientations; Data access of cropped raster images based on vector polygon query coordinates, which assures that no more data is retrieved from the data services than is requhed; and, Compression/decompression services to reduce storage size requhements and access time, which may have negative impact on both processor and RAM resource requirements but is worth while based on the data access speed improvement.
  • the Spatial Datamart is architected in close concert with the client user experience to maximize the performance of on-demand, ad-hoc query and image access.
  • FIG. 173 illustrates a spatial datamart 17310 in accordance certain implementations of the invention.
  • the spatial datamart is implemented using the ESRI Arc/SDE system on Oracle® 8i data store, although any software or data store may be used.
  • the various systems hosted in the Web Center generate different sets of health & welfare data intended to help monitor the system's operation and to provide a source of data that can be used for statistical analysis and facility planning by any part of the ente ⁇ rise spatial system organization.
  • the suite of health & welfare data collected include, for example, raw transactional data from various system sources.
  • the data sources are collected in either data store form or log files that are periodically archived and purged.
  • There are several categories of systems that generate health & welfare data including, for example: OEM networking and server components that host the ente ⁇ rise spatial system service; OEM supplied service components integrated into the ente ⁇ rise spatial system service software; and the ente ⁇ rise spatial system developed software.
  • Both the OEM component procurement process and the ente ⁇ rise spatial system development process that provision Web Center systems include, for example, health & welfare data collection and maintenance a key criteria in theh selection or design. When evaluating or designing these systems, an emphasis is placed on the collection and storage of monitored data points.
  • the health & welfare data points collected are configurable based of the number and nature of data points that each system component requhes to be monitored monitor. Additionally, each component has the ability to be configured to generate and source metric data directly as an optional feature. All collected data points are stored in a uniform data store fonnat to facilitate centralized data management and leverage of common analysis and administration tools. Choosing an industry standard data format, such as SNMP based MIBs, allows the procurement and use of OEM supplied analysis and administration tools.
  • Both the ente ⁇ rise spatial system developed software and OEM purchased application software that are to be hosted in the Web Center may have life-cycle maintenance requhements that include, for example, updates on a periodic basis. Periodic updates of application software are best facilitated by storage on a central data store and loading once during each server's startup sequence. Installations of software updates then only requires the update loaded in a single location in the Web Center and each of the affected server's restarted in order to load the new application software.
  • All Web Center applications are stored on a centralized storage device, such as a SAN system, and then downloaded to each server upon that server's request. Deployment of all Web Center application software is accomplished by the replication server using a "pull" model file transfer from the Operations Center's systems. All replication server "pull" requests are initiated through the administrative functions of the Business Application Services. To assure secure data transfer, all administrative functions are only allowed through the access control system and network interfaces configured to only allow file transfers initiated from the replication servers in the Web Center.
  • a benefit of supporting an altemate file transfer method is to either eliminate or limit the duration of time and number of servers that are requhed to handle large datasets directly in RAM and removes the transfer from the peer-to-peer network. This helps assure system scalability by limiting important resource utilization to only absolutely necessary functions. It is especially effective when interfaces between requesting and sourcing servers are implemented using a message queuing format.
  • the Temporary File Sharing technique is most effective when the network and file system access is done over different physical topologies (e.g., Ethernet vs. Fiber Channel SAN). However, it is still effective in limiting RAM usage when file systems are NFS mounted over the LAN.
  • An additional requirement satisfied by implementation of a centralized file system is to support centralized administration and maintenance of temporary file stores. Areas designated on the SAN devices for temporary file storage is periodically purged to clear any stray files not purged automatically by the requesting services when finished.
  • the Maintenance Services are comprised of a set of Web Center applications with theh own servers and consoles that can be remotely operated through the Application Services using a Web Services user interface.
  • the Maintenance Services are used to schedule and/or execute operational functions required to maintain and monitor the Web Center operations.
  • FIG. 174 illustrates maintenance services 17410 in accordance with certain implementations of the invention.
  • each service When triggered, either on-demand or scheduled, each service performs its function either through the Application Services interface or directly against its applicable dataset.
  • the Application Services interface is used when access to content services is requhed as part of the Administration Services function.
  • a standardized administration framework such as SMS or other SNMP MIB based administration system, maybe used if it is capable of being extended to integrate all requhed administrative services.
  • An aspect of the health & welfare of an un-staffed Web Center facility is the ability to remotely monitor and administer all systems and processes.
  • a uniform and centrally managed health & welfare technology standard is chosen for the collection, storage and administration of all data sources. All systems procured or developed for the Web Center is compliant to the chosen standard. All health & welfare system administration is accessed via web browser through the Web Services interface.
  • the health & welfare component of the Administrative services user interface supports the following functions: the enabling and disabling of all available data sources (both discrete data sources and log files); the addition and removal of metric calculation criteria (discrete data sources only); the adjustment of existing metric calculation criteria (discrete data sources only); the archival and purging of one, or any group of, data sources (both discrete data sources and log files); timestamp range limited selection and viewing of raw data in either tabular or log file form (both discrete data sources and log files); a query and reporting function that allows the selection and graphing of any number of compatible data sources (discrete data sources only); the addition, enabling, disabling and removal criteria for triggering asynchronous operational alert messages (discrete data sources only); and, at least three levels of alert messages including: Informational, Warning, and Alarm, (discrete data sources only).
  • An application hosted by the Operations facility receives and displays all alert messages received from the Web Center.
  • this alert system may be implemented using email and later enhanced.
  • All data of interest is able to be collected as either discrete data elements or as calculated metric based on preset criteria or both. All systems that are identified as requiring metric data generation support dynamic, remote administration of metric calculation criteria.
  • Raw and metric data collected is used by operations to isolate system performance bottlenecks and analyze future production capacity changes.
  • Application usage data is used by the development and marketing groups to focus and prioritize resources on areas functionality that are servicing higher customer demand.
  • all possible data sources that can be identified are collected. The systems are not requhed to provide additional, unpredicted data points without the potential for restarting the server or component intended as the source of the data.
  • a uniform technology standard such as SNMP compliant agents and MIB data repositories, may be used for the collection and storage of discrete data elements. Additional support for the management of server log files is provided.
  • a centralized archival and purging system is defined to support both SNMP and log file data.
  • a Replication System is implemented in the Web Center with the primary function of transfening data in bulk between the Web Center and the Operations Center.
  • the Replication System is operated only be operated through the Administration system of the Web Services and support both on-demand and timed batch job submissions.
  • the Replication System initiates all exchanges of data between the Web Center and the Operations Center.
  • the Replication System does not accept any external connections or requests except from the Web Services.
  • a primary function of the Replication system is to handle data transfers for archival and retrieval. All deployment of application software and GIS datasets is accomplished as if it were an archive restore.
  • the Replication System supports an additional feature to allow the transfer of selected data in their exact form without any conversion or compression. This may not be the most efficient means of transport between the two facilities and may be restricted to specific datasets such as data hosted on standard file systems.
  • the Replication System includes, for example, a tape system to support Web Center local loading and archiving of components as a backup precaution.
  • An Archival System is implemented to support both the archival and retrieval of any set of dynamic data housed on the centralized data store in the Web Center. In certain implementations, the archival system is a tape based storage system housed in Operations Center.
  • a two-step archival/retrieval process may be implemented to eliminate the need for Operations personnel to enter the Web Center to perform the process.
  • Requests to initiate an archival are made using the Administration system hosted by the Web Services. Once the archival criteria is specified (including when, what and where to archive), a job is submitted to the Replication Service to perform the archival. At the designated time, the Replication Service shall perform the archival of the specified data and "push" it, in a compressed archival form, either directly on to a tape device or to a disk storage area both hosted in the Operations Center.
  • Requests to initiate an archive restore are performed in the same manner as archiving except in reverse.
  • Restore request made through the Administration system shall configure the requhed Replication Service job.
  • the Replication Service shall "pull" the archive from the Operation Center source location and load it into place in the Web Center Data Services.
  • An additional process to bring the restored archive on-line is requhed and accomplished through the Administration system.
  • All archival and restore processes are executed non-intrusively having no impact on availability of any of the system's operational components. The performance impact of the archival and restore processes is limited to the minimal system resource usage required to perform the operation again without impact system availability. It is expected that the final restore process shall impact resource system availability as the restored archive is brought back on-line.
  • the level of impact a restore shall impose is dependant upon what component of the system is being restored.
  • the Replication Service archival/restore system supports optional encryption of the requested dataset.
  • the Replication Service shall use best practice industry accepted archival cryptography standards to perform any encryption functions requhed. Not all types of archives are restorable into the production environment. The need to restore health & welfare data is not expected to be a requirement at launch or in the future. Cunent and historical operational status of the archival system is available through the Administration system. The operational status and history of the archival system is logged as part of the health & welfare system.
  • the Web Center functionality is reliant upon supporting systems, interfaces and business processes operated in the Operations Center and other external entities. Both the on-going production operations and the life-cycle system deployment process are tied to these supporting peer systems.
  • FIG. 175 illustrates operational dataflow for the Web Center 17510 in accordance with certain implementations of the invention.
  • the Web Center is highly integrated with the Operations Center and relies on the interfaces with the Operations Center to function.
  • Production GIS Data which is transmitted to the Web Center and loaded into production use under a strict Quality Control process
  • Production Applications which are transmitted to the Web Center and loaded into production use under a strict Quality Control process
  • Order Fulfillment Data which is transmitted from the Web Center to be processed by systems and personnel in the Operations Center for delivery to the customer base
  • Operational Monitoring/Usage Data including both web center health & welfare status information and operational maintenance controls passed between the Web Center and the Operations Center.
  • a newly developed dataset follows a strict, two-step Quality Control process to be deployed and brought on-line.
  • the first step is to load the data into its final production location in the Web Center (e.g., via a direct, dedicated, high-volume network link controlled by, for example, a Replication System).
  • the production enabling second step is accomplished through the Administration Services.
  • the health & welfare section of the Administration Services allow operations to set the state of the new dataset to on-line and to take off-line any old dataset that it may be replacing.
  • the core Business Application Services always accesses datasets using a version control flag that identifies which dataset to use. Therefore, the next client activity that accesses the affected dataset shall vector to the newly enabled dataset instead of its now obsolete predecessor.
  • the Web Center only maintains only cunent datasets to maximize use of limited production resources. Obsolete datasets are purged from the Web Center after they are no longer being accessed. This process ensures that any in-process client activities are completed on the same dataset version they were initiated upon and eliminates any potential for termination or other adverse affect on the client experience.
  • the Operations Center maintains all past versions of GIS Data as a historical library.

Abstract

La présente invention concerne un procédé, un système et un logiciel pour offrir l'accès à des données spatiales. Une demande de données est reçue. Des données d'entreprise et tiers sont intégrées. Les données intégrées sont traitées. Des résultats spacialement référencés sont générés en utilisant les données traitées. Les résultats spacialement référencés sont renvoyés en réaction à la demande.
PCT/US2003/008296 2002-03-16 2003-03-17 Procede, systeme et logiciel pour un systeme spatial ameliore d'entreprise WO2003081388A2 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CA002479375A CA2479375A1 (fr) 2002-03-16 2003-03-17 Procede, systeme et logiciel pour un systeme spatial ameliore d'entreprise
AU2003233407A AU2003233407A1 (en) 2002-03-16 2003-03-17 Method, system, and program for an improved enterprise spatial system
EP03728254A EP1502175A2 (fr) 2002-03-16 2003-03-17 Procede, systeme et logiciel pour un systeme spatial ameliore d'entreprise

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US36480702P 2002-03-16 2002-03-16
US60/364,807 2002-03-16

Publications (2)

Publication Number Publication Date
WO2003081388A2 true WO2003081388A2 (fr) 2003-10-02
WO2003081388A3 WO2003081388A3 (fr) 2004-12-09

Family

ID=28454618

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2003/008296 WO2003081388A2 (fr) 2002-03-16 2003-03-17 Procede, systeme et logiciel pour un systeme spatial ameliore d'entreprise

Country Status (4)

Country Link
EP (1) EP1502175A2 (fr)
AU (1) AU2003233407A1 (fr)
CA (1) CA2479375A1 (fr)
WO (1) WO2003081388A2 (fr)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006036866A1 (fr) * 2004-09-27 2006-04-06 Travelocity.Com Lp Systeme, procede et produit logiciel destines a la recherche et a la recuperation de points d'interet classes a l'interieur d'une zone d'interet polygonale
US20060271508A1 (en) * 2005-05-24 2006-11-30 Ju Wu Apparatus and method for augmenting a report with metadata for export to a non-report document
EP1755075A1 (fr) * 2005-08-04 2007-02-21 Sap Ag Méthode et système pour l'exécution sécurisée d'une activité dans un processus de workflow
US8838553B2 (en) 2002-03-16 2014-09-16 The Paradigm Alliance, Inc. Method, system, and program for an improved enterprise spatial system
US10032290B2 (en) 2004-05-14 2018-07-24 Tencent Technology (Shenzhen) Company Limited Method for synthesizing dynamic virtual figures
CN111917797A (zh) * 2014-04-29 2020-11-10 推特公司 应用间委托的认证
CN113315837A (zh) * 2021-05-27 2021-08-27 广联达科技股份有限公司 一种企业数据共享平台
US11703404B2 (en) 2019-06-17 2023-07-18 Colorado State University Research Foundation Device for automated crop root sampling

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115878648B (zh) * 2023-02-22 2023-05-05 成都成电医星数字健康软件有限公司 数据逻辑时序自动调整方法、装置、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0860787A2 (fr) * 1997-02-25 1998-08-26 Kokusai Denshin Denwa Co., Ltd Système de représentation de cartes
WO1999021108A1 (fr) * 1997-10-21 1999-04-29 British Telecommunications Public Limited Company Systeme de gestion de l'information
US6216130B1 (en) * 1998-04-24 2001-04-10 Ingeo Acquisitions, Inc. Geographic-based information technology management system
US6236996B1 (en) * 1997-10-31 2001-05-22 Sun Microsystems, Inc. System and method for restricting database access to managed object information using a permissions table that specifies access rights to the managed objects
WO2001096906A1 (fr) * 2000-06-16 2001-12-20 E Team, Inc. Logiciel de gestion de flux des travaux distribue, collaboratif
US6343290B1 (en) * 1999-12-22 2002-01-29 Celeritas Technologies, L.L.C. Geographic network management system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0860787A2 (fr) * 1997-02-25 1998-08-26 Kokusai Denshin Denwa Co., Ltd Système de représentation de cartes
WO1999021108A1 (fr) * 1997-10-21 1999-04-29 British Telecommunications Public Limited Company Systeme de gestion de l'information
US6236996B1 (en) * 1997-10-31 2001-05-22 Sun Microsystems, Inc. System and method for restricting database access to managed object information using a permissions table that specifies access rights to the managed objects
US6216130B1 (en) * 1998-04-24 2001-04-10 Ingeo Acquisitions, Inc. Geographic-based information technology management system
US6343290B1 (en) * 1999-12-22 2002-01-29 Celeritas Technologies, L.L.C. Geographic network management system
WO2001096906A1 (fr) * 2000-06-16 2001-12-20 E Team, Inc. Logiciel de gestion de flux des travaux distribue, collaboratif

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
"Integrating Spatial Data with Business Data"[Online] 1999, XP002288190 Retrieved from the Internet: URL:http://www.db2mag.com/db_area/archives /1999/q1/99sp_mattos.shtml> [retrieved on 2004-07-13] *
BRODY R: "GIS applications in competitive intelligence" 20TH ANNUAL NATIONAL ONLINE MEETING. PROCEEEDINGS-1999, PROCEEDINGS OF 20TH NATIONAL ONLINE MEETING, NEW YORK, NY, USA, 18-20 MAY 1999, 1999, XP008032590 *
MOHRAZ K: "Geographical analysis in SAP business information warehouse" PROCEEDINGS OF THE EIGHTH ACM INTERNATIONAL SYMPOSIUM ON ADVANCES IN GEOGRAPHIC INFORMATION SYSTEMS, [Online] November 2000 (2000-11), pages 191-193, XP002296715 ISBN: 1-58113-319-7 Retrieved from the Internet: URL:http://portal.acm.org/toc.cfm?id=35527 4&type=proceeding> [retrieved on 2004-09-09] *
STEPHENSON T ET AL: "IMACTS: an interactive, multiterabyte image archive" MASS STORAGE SYSTEMS, 1995. 'STORAGE - AT THE FOREFRONT OF INFORMATION INFRASTRUCTURES', PROCEEDINGS OF THE FOURTEENTH IEEE SYMPOSIUM ON MONTEREY, CA, USA 11-14 SEPT. 1995, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US, 11 September 1995 (1995-09-11), pages 146-161, XP010194189 ISBN: 0-8186-7064-9 *
WANG L: "Implementation Issue : TCP handoff"[Online] 20 February 2000 (2000-02-20), XP002296716 Retrieved from the Internet: URL:http://www.cs.princeton.edu/~lmwang/pu bps/wcw/node10.html> [retrieved on 2004-09-01] *
YATES J D ET AL: "Searching the Web using a map" WEB INFORMATION SYSTEMS ENGINEERING, 2000. PROCEEDINGS OF THE FIRST INTERNATIONAL CONFERENCE ON HONG KONG, CHINA 19-21 JUNE 2000, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US, 19 June 2000 (2000-06-19), pages 222-229, XP010521858 ISBN: 0-7695-0577-5 *

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10073979B2 (en) 2002-03-16 2018-09-11 The Paradigm Alliance, Inc. Method, system, and program for an improved enterprise spatial system
US8838553B2 (en) 2002-03-16 2014-09-16 The Paradigm Alliance, Inc. Method, system, and program for an improved enterprise spatial system
US8838555B2 (en) 2002-03-16 2014-09-16 The Paradigm Alliance, Inc. Method, system, and program for an improved enterprise spatial system
US8918730B2 (en) 2002-03-16 2014-12-23 The Paradigm Alliance, Inc. Method, system, and program for an improved enterprise spatial system
US8983896B2 (en) 2002-03-16 2015-03-17 The Paradigm Alliance, Inc. Method, system, and program for an improved enterprise spatial system
US10032290B2 (en) 2004-05-14 2018-07-24 Tencent Technology (Shenzhen) Company Limited Method for synthesizing dynamic virtual figures
US7715981B2 (en) 2004-09-27 2010-05-11 Travelocity.Com Lp System, method and computer program product for searching and retrieving ranked points of interest within a polygonal area of interest
WO2006036866A1 (fr) * 2004-09-27 2006-04-06 Travelocity.Com Lp Systeme, procede et produit logiciel destines a la recherche et a la recuperation de points d'interet classes a l'interieur d'une zone d'interet polygonale
US20060271508A1 (en) * 2005-05-24 2006-11-30 Ju Wu Apparatus and method for augmenting a report with metadata for export to a non-report document
US8527540B2 (en) * 2005-05-24 2013-09-03 Business Objects Software Ltd. Augmenting a report with metadata for export to a non-report document
US7805325B2 (en) 2005-08-04 2010-09-28 Sap Ag Method and system for secured execution of an activity in a workflow process
EP1755075A1 (fr) * 2005-08-04 2007-02-21 Sap Ag Méthode et système pour l'exécution sécurisée d'une activité dans un processus de workflow
CN111917797A (zh) * 2014-04-29 2020-11-10 推特公司 应用间委托的认证
CN111917797B (zh) * 2014-04-29 2022-11-25 推特公司 应用间委托的认证
US11539698B2 (en) 2014-04-29 2022-12-27 Twitter, Inc. Inter-application delegated authentication
US11703404B2 (en) 2019-06-17 2023-07-18 Colorado State University Research Foundation Device for automated crop root sampling
CN113315837A (zh) * 2021-05-27 2021-08-27 广联达科技股份有限公司 一种企业数据共享平台

Also Published As

Publication number Publication date
AU2003233407A1 (en) 2003-10-08
CA2479375A1 (fr) 2003-10-02
WO2003081388A3 (fr) 2004-12-09
EP1502175A2 (fr) 2005-02-02

Similar Documents

Publication Publication Date Title
US10073979B2 (en) Method, system, and program for an improved enterprise spatial system
US7958185B2 (en) Spatial data enabled engineering, construction, and operations computer-aided design (CAD) project system, method and computer program product
Jagoe Mobile location services: The definitive guide
Neteler et al. Open source GIS: a GRASS GIS approach
Cromley et al. GIS and public health
US7356406B2 (en) Land software tool
US20120232939A1 (en) Method for Rendering Layer Images and Providing Information
US20080052372A1 (en) Method and system for presenting information with multiple views
US20190121827A1 (en) Method for webpage creation system for accelerated webpage development for at least one mobile computing device
Keating et al. Challenges for enterprise GIS
WO2003081388A2 (fr) Procede, systeme et logiciel pour un systeme spatial ameliore d'entreprise
Sharma et al. A spatial decision support system for land management
Ruan et al. Preliminary investigation of implementing Environmental Information System for the Pantex Facility
van Brunschot The Company Relevance of GIS Metadata with special emphasis on
Kuiper et al. Special population planner, version 4.0.
Book Consultative Committee for Space Data Systems
Cotter et al. A process for evaluating geographic information systems
Mearns Requirements of a web-based geographic information system clearinghouse
BOOK Reference Model for an Open Archival Information System (OAIS)
Landrau Accessing geospatial data to support research, monitoring and environmental management activities
Turner et al. End-user interest in geotechnical data management systems.
CENTER SURVEY MANAGEMENT AND MEASUREMENT MANAGEMENT RELEASE 1.1
Quiroga et al. A DATA PLATFORM FOR MANAGING UTILITIES ALONG HIGHWAY CORRIDORS: USER MANUAL 6. Performing Organization Code
Schnürer Sensor Discovery in Virtual Globes
Council et al. Geographical Information Systems (GIS) Development Strategy

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NI NO NZ OM PH PL PT RO RU SC SD SE SG SK SL TJ TM TN TR TT TZ UA UG UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: 2003233407

Country of ref document: AU

WWE Wipo information: entry into national phase

Ref document number: 1339/KOLNP/2004

Country of ref document: IN

WWE Wipo information: entry into national phase

Ref document number: 1020047014552

Country of ref document: KR

Ref document number: 2003579053

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2479375

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: 2003728254

Country of ref document: EP

WWR Wipo information: refused in national office

Ref document number: 1020047014552

Country of ref document: KR

WWW Wipo information: withdrawn in national office

Ref document number: 1020047014552

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 2003728254

Country of ref document: EP

NENP Non-entry into the national phase in:

Ref country code: JP