Interactive data object map
Abstract
Computer-implemented method comprising: <br />Creating a graphical user interface that includes an interactive map, a plurality of features or objects displayed on the interactive map, and one or more histograms (304, 410) overlaid on an area on the interactive map, wherein generating the graphical user interface includes: <br />Accessing an electronic data structure configured to store a plurality of features or objects, each of the features or objects being associated with metadata; <br />Including at least some of the retrieved plurality of features or objects in the interactive map, the features or objects being selectable by a user; and <br />responsive to an initial input from the user selecting a plurality of the captured features or objects: <br />Determining metadata associated with respective selected features or objects (310, 312); <br />Determine one or more metadata categories associated with at least one of the particular metadata; <br />for each of the particular metadata categories, generating one or more histograms (304, 410) containing metadata values or ranges of values associated with respective selected features or objects (310, 312), each of the histograms (304, 410) includes a visual indicator that indicates a number (quantity) of the respective selected plurality of features or objects (310, 312), that have been included in the interactive map and that have the respective metadata value or value range; and <br />Overlaying the one or more histograms (304, 410) onto the area of the interactive map; and <br />The graphical user interface is displayed to the user on a computing device.

Term
7.6 yearsleft in the term
Expires 7 May 2034.
- Priority and filed
- Granted
- Today
- Expires
22 claims: 3 independent, 19 dependent
- 1Computerimplementiertes Verfahren, umfassend:Erzeugen einer graphischen Benutzerschnittstelle, die eine interaktive Karte, eine Mehrzahl von Merkmalen oder Objekten, die auf der interaktiven Karte angezeigt werden, und eines oder mehrere Histogramme (304, 410) beinhaltet, die einem Gebiet auf der interaktiven Karte überlagert werden, wobei das Erzeugen der graphischen Benutzerschnittstelle umfasst: Zugreifen auf eine elektronische Datenstruktur, die konfiguriert ist, eine Mehrzahl von Merkmalen oder Objekten zu speichern, wobei jedes der Merkmale oder Objekte mit Metadaten assoziiert ist;Aufnehmen zumindest einiger von der abgerufenen Mehrzahl von Merkmalen oder Objekten in die interaktive Karte, wobei die Merkmale oder Objekte durch einen Benutzer ausgewählt werden können;und ansprechend auf eine erste Eingabe von dem Benutzer, die eine Mehrzahl von den aufgenommenen Merkmalen oder Objekten auswählt: Bestimmen von Metadaten, die mit jeweiligen gewählten Merkmalen oder Objekten (310, 312) assoziiert sind;Bestimmen einer oder mehrerer Metadaten-Kategorien, die mit mindestens einem der bestimmten Metadaten assoziiert sind;für jede der bestimmten Metadaten-Kategorien, Erzeugen eines oder mehrerer Histogramme (304, 410), die Metadatenwerte oder -wertbereiche enthalten, welche mit jeweiligen gewählten Merkmalen oder Objekten (310, 312) assoziiert sind, wobei jedes der Histogramme (304, 410) einen visuellen Indikator beinhaltet, der eine Anzahl (Quantität) der jeweiligen gewählten Mehrzahl von Merkmalen oder Objekten (310, 312) angibt, die in die interaktive Karte aufgenommen worden sind und die den jeweiligen Metadatenwert oder -wertbereich haben;und Überlagern des einen oder der mehreren Histogramme (304, 410) auf das Gebiet der interaktiven Karte;und die graphische Benutzerschnittstelle wird auf einer Rechnervorrichtung dem Benutzer angezeigt.
- 16Verfahren, umfassend:Erzeugen (702) einer graphischen Benutzerschnittstelle, die eine interaktive Karte und eine Mehrzahl von auf der interaktiven Karte angezeigten Merkmalen oder Objekten beinhaltet, wobei die interaktive Karte eine Mehrzahl von Kartenkacheln beinhaltet, und die Kartenkacheln jeweils ein Bild beinhalten, das aus einer oder mehreren Vektorschichten aufgebaut ist, wobei ein Erzeugen der graphischen Benutzerschnittstelle umfasst: Zugreifen auf eine elektronische Datenstruktur, die konfiguriert ist, eine Mehrzahl von Merkmalen oder Objekten zu speichern, wobei jedes der Merkmale oder Objekte mit Metadaten assoziiert ist;Aufnehmen zumindest einiger von der abgerufenen Mehrzahl von Merkmalen oder Objekten in die interaktive Karte, wobei die Merkmale oder Objekte durch einen Benutzer ausgewählt werden können;Bestimmen einer oder mehrerer Metadaten-Kategorien, die mit mindestens einem der Metadaten assoziiert sind;für jede der bestimmten Metadaten-Kategorien, Erzeugen eines oder mehrerer Histogramme (304, 410), die Metadatenwerte oder -wertbereiche enthalten, welche mit jeweiligen gewählten Merkmalen oder Objekten (310, 312) assoziiert sind;und Überlagern des einen oder der mehreren Histogramme (304, 410) auf das Gebiet der interaktiven Karte;und ansprechend auf eine erste Eingabe (704) von dem Benutzer, die mindestens eine von einer Vergrößern-/Verkleinern-Aktion (Zoom-Aktion), einer Verschiebe-Aktion, einer Merkmals- oder Objektaus wahl (706), einer Schichtauswahl (708), einer Geosuche (710), einer Heatmap (504, 712) oder einer Schlüsselwortsuche (714) beinhaltet: Anfordern (716), von einem Server, von aktualisierten Kartenkacheln, wobei die aktualisierten Kartenkacheln gemäß der Eingabe vom Benutzer aktualisiert werden;Empfangen (718) der aktualisierten Kartenkacheln vom Server;und Aktualisieren (720) der interaktiven Karte mit den aktualisierten Kartenkacheln;und bei einer Rechner-Vorrichtung wird die graphische Benutzerschnittstelle dem Benutzer angezeigt.
- 19Verfahren, umfassend:Erzeugen einer graphischen Benutzerschnittstelle, die eine interaktive Karte beinhaltet, welche eine Mehrzahl von Kartenschichten aufweist, wobei das Erzeugen der graphischen Benutzerschnittstelle umfasst: Bestimmen einer Liste von verfügbaren Kartenschichten;Organisieren der Liste von verfügbaren Kartenschichten gemäß einer hierarchischen Schicht-Ontologie (1205), wobei ähnliche Kartenschichten zusammen gruppiert werden;Bestimmen einer oder mehrerer Metadaten-Kategorien, die mit einem Metadatum oder mehreren Metadaten der Kartenschichten assoziiert sind;für jede der bestimmten Metadaten-Kategorien, Erzeugen eines oder mehrerer Histogramme (304, 410), die Metadatenwerte oder -wertbereiche enthalten, welche mit jeweiligen gewählten Merkmalen (310, 312) oder Objekten assoziiert sind;und Überlagern des einen oder der mehreren Histogramme (304, 410) auf das Gebiet der interaktiven Karte;und Anzeigen der hierarchischen Schicht-Ontologie (1205) auf der interaktiven Karte, wobei ein Benutzer eine oder mehrere der angezeigten Schichten auswählen kann, und wobei jede der verfügbaren Kartenschichten mit einem oder mehreren Merkmalen oder Objekttypen assoziiert ist;und die graphische Benutzerschnittstelle wird dem Benutzer bei einer Rechner-Vorrichtung angezeigt.
Independent claims3
166 paragraphs in 2 sections, as filed
0001The present disclosure relates to systems and methods for integrating, analyzing and visualizing geographic data. More specifically, the present disclosure relates to interactive maps that include data objects.
0002Interactive geographic maps, such as web-based cartography service applications and geographic information systems (GIS), are provided by a number of providers. Such maps generally feature satellite imagery or generic base layers overlaid with roads. In general, users of such systems can search for and view locations of a small number of landmarks and determine directions from one location to another. Some interactive geographic maps may display 3D terrain and/or a 3D building in the user interface.
0003<de-docref CY="US" DNUM="2009/0132953" KI="A1">US 2009 / 0 132 953 A1</de-docref>describes a graphical user interface for a search system with an interactive map. The user interface has a selection/search area and a results area. Search criteria can be entered in the selection/search area. In the results area, the search result is displayed as a list and as a visual representation on a geographical map.
0004<de-docref CY="US" DNUM="2010/0197318" KI="A1">US 2010 / 0 197 318 A1</de-docref>describes a graphical user interface for a search system with an interactive map based on social network data. The user interface has an input area for selection criteria and a map area in which crowds are displayed. Individual crowds can be selected in the map pane, with further information about the selected crowd displayed in a results pane. Histograms can also be displayed overlaid on a map.
0005<de-docref CY="US" DNUM="2009/0160859" KI="A1">US 2009 / 0 160 859 A1</de-docref>describes a graphical user interface for a search system with an interactive map for visualizing access patterns to media data. The user interface has a selection/search area and a results window. In the selection/search area, a user can enter a search profile with various features of the media data. The search result is displayed in the results window as a visual representation on a geographical map. A histogram display can be selected.
0006<de-docref CY="US" DNUM="8280880" KI="B1">US 8,280,880 B1</de-docref>describes a graphical user interface for a search system with a selection/search area and a results area. A user can set a search profile in the selection/search area. Histograms for various characteristics can be displayed in the results area. A geographical map can be displayed.
0007<de-docref CY="US" DNUM="2011/0208724" KI="A1">US 2011 / 0 208 724 A1</de-docref>describes a graphical user interface for a search system with an interactive map (geo-information system). The user interface has a selection/search area and a results area. In the selection/search area, a user can set a search profile that has a selection among several available layers. In the results area, the search result is displayed as a visual representation on a geographical map.
0008The invention is set out in the independent claims. The dependent claims relate to optional features of some embodiments of the invention.
0009The systems, methods and devices described herein each have several aspects, none of which are solely responsible for their desired attributes. Without limiting the scope of this disclosure, several non-limiting features are briefly discussed below.
0010The systems, methods, and devices of the present disclosure may, among other features, provide high performance interactive geospatial and/or data object mapping capabilities involving large amounts of geographic, geospatial, and other types of data, geospatial data, objects, features, and/or or metadata is presented to a user on a map interface in an efficient manner. In various embodiments, an interactive geospatial mapping system (also referred to as an interactive data object mapping system) may enable rapid and in-depth analysis of various objects, features, and/or metadata by the user. In some embodiments, a layer ontology may be displayed to the user. In various embodiments, when the user moves a selection cursor over an object/feature, an outline of the object/feature is displayed. Selecting an object/feature may cause metadata associated with that object/feature to be displayed. In various embodiments, the interactive data object mapping system may automatically generate feature/object lists and/or histograms based on selections made by the user. Various aspects of the present disclosure may enable the user to perform a geosearch, generate heatmaps, and/or perform a keyword search, among other actions.
0011In one embodiment, a computer-implemented method is disclosed comprising: generating a graphical user interface that includes an interactive map, a plurality of features or objects displayed on the interactive map, and one or more histograms corresponding to an area on the interactive map be overlaid, generating the graphical user interface comprising: accessing an electronic data structure configured to store a plurality of features or objects, each of the features or objects being associated with metadata; including at least some of the retrieved plurality of features or objects in the interactive map, the features or objects being selectable by a user; and, in response to a first input from the user selecting a plurality of the captured features or objects: determining metadata associated with respective selected features or objects; determining one or more metadata categories associated with at least one of the particular metadata; for each of the particular metadata categories, generating one or more histograms containing metadata values or value ranges associated with respective selected features or objects, each of the histograms including a visual indicator representing a number (quantity) of the respective selected plurality of features or objects that have been included in the interactive map and that have the respective metadata value or value range; and overlaying the one or more histograms onto the area of the interactive map; and the graphical user interface is displayed to the user on a computing device.
0012In one aspect, the features or objects may include vector data.
0013In another aspect, the features or objects may include at least one of: roads, terrain, lakes, rivers, vegetation, utilities, street lighting, railroads, hotels or motels, schools, hospitals, buildings or structures, regions, transportation objects, entities, events, or documents.
0014In yet another aspect, the metadata associated with the features or objects may include at least one of a location, a city, a county, a state, a state, an address, a district, a grade elevation, a telephone number, a Speed, a width, or other related attributes.
0015According to another aspect, the features or objects may be selected by a user using a mouse and/or a touch interface.
0016In yet another aspect, each histogram of the one or more histograms may be specific to a particular metadata category.
0017In another aspect, each histogram of the one or more histograms may include a list of metadata items specific to the histogram's particular metadata category, the item list being organized in descending order starting from an item having the greatest number of related objects or features, to an element, which has the fewest number of related objects or features.
0018In yet another aspect, the one or more histograms may be displayed such that they are partially overlaid on the displayed interactive map.
0019According to yet another aspect, generating the graphical user interface may further include: responsive to a second input from the user selecting a second or more second features or objects from the one or more histograms: updating the user interface to include the second or more second, display features or objects on the interactive map; and highlighting the second or more second features or objects on the interactive map.
0020According to yet another aspect, updating the interactive map may include panning and/or zooming in/out.
0021According to yet another aspect, highlighting the second feature or features may include at least one of contour highlighting, color change, bolding, or contrast change.
0022In yet another aspect, generating the graphical user interface may further include: in response to a third input from the user selecting a drill-down set of features or objects from the one or more histograms, drilling down on the selected drill-down Group of features or objects, namely by: determining metadata associated with respective features or objects of the selected drill-down group; determining one or more drill-down metadata categories associated with at least one item of the retrieved metadata associated with a respective one of the features or objects of the selected drill-down group; for each of the particular drill-down metadata categories, generating one or more drill-down histograms containing drill-down metadata values or value ranges associated with respective features or objects of the selected drill-down group, each of the drill-down histograms having a visual contains an indicator that denotes a number (quantity) of the respective characteristics or objects of the selected drill-down group, which have the respective drill-down metadata value or value range; and overlaying the one or more drill-down histograms onto the area of the interactive map.
0023In another aspect, the user may be enabled to drill down even further into the one or more drill-down histograms.
0024According to yet another aspect, generating the graphical user interface may further include: receiving input from the user by pointing to a feature or object with an input means; and, in response to receiving the input by pointing with the input means, metadata associated with the particular feature or object pointed to by the cursor is highlighted to the user.
0025According to another aspect, generating the graphical user interface may further include: accepting input from the user to select a feature or object; and, in response to accepting the selection input, metadata associated with the particular selected feature or object is displayed to the user.
0026In another embodiment, a method is disclosed comprising: generating a graphical user interface that includes an interactive map and a plurality of features or objects displayed on the interactive map, the interactive map including a plurality of map tiles, and the map tiles each including an image which is constructed from one or more vector layers, generating the graphical user interface comprising: accessing an electronic data structure configured to store a plurality of features or objects, each of the features or objects being associated with metadata; including at least some of the retrieved plurality of features or objects in the interactive map, the features or objects being selectable by a user; determining one or more metadata categories associated with at least one of the particular metadata; for each of the particular metadata categories, generating one or more histograms containing metadata values or ranges of values associated with respective selected features or objects; and overlaying the one or more histograms onto the area of the interactive map; and, in response to a first input from the user, at least one of a zoom in/out action, a pan action, a feature or object selection, a layer selection, a geosearch, a heatmap, or a keyword search includes: requesting, from a server, updated map tiles, the updated map tiles being updated according to input from the user; Receiving the updated map tiles from the server; and updating the interactive map with the updated map tiles; and in a computing device, the graphical user interface is displayed to the user.
0027In one aspect, the one or more vector layers may include at least one of a region layer, a building/structure layer, a terrain layer, a transportation layer, or a utility/infrastructure layer.
0028In one aspect, each of the one or more vector layers may consist of one or more vector sublayers.
0029In yet another embodiment, a method is disclosed comprising: generating a graphical user interface including an interactive map having a plurality of map layers, wherein generating the graphical user interface comprises: determining a list of available map layers; organizing the list of available map layers according to a hierarchical layer ontology, grouping similar map layers together; determining one or more metadata categories associated with at least one metadata of the map layers; for each of the particular metadata categories, generating one or more histograms containing metadata values or ranges of values associated with respective selected features or objects; and overlaying the one or more histograms onto the area of the interactive map; Displaying the hierarchical layer ontology on the interactive map, wherein a user can select one or more of the displayed layers, and wherein each of the available map layers is associated with one or more features or object types; and the graphical user interface is displayed to the user on a computing device.
0030In one aspect, the map layers may include at least one of vector layers and base layers.
0031In further embodiments, a computer system is disclosed that includes one or more computer processors configured with computer-executable instructions to perform the above steps.
0032In still further embodiments, a computer-readable storage medium is disclosed that stores software instructions that, when executed by one or more processors, cause the one or more processors to perform the steps noted above.
0033The following aspects of the disclosure will be more readily appreciated when explained from the following detailed description, taken in conjunction with the accompanying drawings.<ul id="ul_0001" list-style="none"><li id="ul_0001_0001"><figref>1</figref>shows an example user interface of the interactive data object mapping system, according to an embodiment of the present disclosure.</li><li id="ul_0001_0002"><figref>2a</figref>shows an example user interface of the interactive data object mapping system in which map layers are displayed to a user, according to an embodiment of the present disclosure.</li><li id="ul_0001_0003"><figref>2b</figref>shows an example map layer ontology, according to an embodiment of the present disclosure.</li><li id="ul_0001_0004"><figref>2c</figref>shows an exemplary user interface of the interactive data object mapping system displaying various objects, according to an embodiment of the present disclosure.</li><li id="ul_0001_0005"><figref>3a</figref>shows an example user interface of the interactive data object mapping system with objects selected, according to an embodiment of the present disclosure.</li><li id="ul_0001_0006"><figref>3B-3G</figref>show exemplary user interfaces of the interactive data object mapping system in which objects are selected and a histogram is displayed, according to embodiments of the present disclosure.</li><li id="ul_0001_0007"><figref>3H-3I</figref>show exemplary user interfaces of the interactive data object mapping system in which objects are selected and a list of objects is displayed, according to embodiments of the present disclosure.</li><li id="ul_0001_0008"><figref>3Y-3K</figref>show exemplary user interfaces of the interactive data object mapping system in which objects are displayed contoured when the cursor is moved over them, according to embodiments of the present disclosure.</li><li id="ul_0001_0009"><figref>4a-4d</figref>show exemplary user interfaces of the interactive data object mapping system displaying a radius geosearch, according to embodiments of the present disclosure.</li><li id="ul_0001_0010"><figref>5A-5D</figref>show exemplary user interfaces of the interactive data object mapping system in which a heatmap is displayed, according to embodiments of the present disclosure.</li><li id="ul_0001_0011"><figref>5e-5f</figref>show exemplary user interfaces of the interactive data object mapping system displaying a shape-based geosearch, according to embodiments of the present disclosure.</li><li id="ul_0001_0012"><figref>5G</figref>shows an example user interface of the interactive data object mapping system displaying a keyword object search, according to an embodiment of the present disclosure.</li><li id="ul_0001_0013"><figref>5H</figref>shows an example of a UTF grid of the interactive data object mapping system, according to an embodiment of the present disclosure.</li><li id="ul_0001_0014"><figref>6a</figref>FIG. 12 shows a flowchart illustrating client-side operations of the interactive data object mapping system, according to an embodiment of the present disclosure.</li><li id="ul_0001_0015"><figref>6b</figref>Fig. 12 shows a flowchart illustrating an illustrative client-side retrieval of metadata of the interactive data object mapping system, according to an embodiment of the present disclosure.</li><li id="ul_0001_0016"><figref>7a</figref>FIG. 12 shows a flowchart illustrating server-side operations of the interactive data object mapping system, according to an embodiment of the present disclosure.</li><li id="ul_0001_0017"><figref>7b</figref>Fig. 12 shows a flowchart illustrating an explanatory server-side layer composition of the interactive data object mapping system, according to an embodiment of the present disclosure.</li><li id="ul_0001_0018"><figref>8a</figref>shows an embodiment of a database system using an ontology.</li><li id="ul_0001_0019"><figref>8b</figref>shows an embodiment of a system for generating data in a data store using a dynamic ontology.</li><li id="ul_0001_0020"><figref>8c</figref>shows an example user interface that uses relationships described in a data store using a dynamic ontology.</li><li id="ul_0001_0021"><figref>8d</figref>shows a computer system with which certain methods explained here can be implemented.</li></ul>
DETAILED DESCRIPTION OF SPECIFIC EMBODIMENTS
Overview
0034In general, a high performance interactive data object mapping system (or "mapping system") is disclosed in which large amounts of geographic, geospatial, and other types of data, geospatial data, objects, features, and/or metadata are efficiently presented to a user on a mapping interface. The interactive data object mapping system allows rapid and in-depth analysis of various objects, features, and/or metadata by the user. For example, millions of data objects and/or features can be viewed and selected by the user on the map interface simultaneously. A layer ontology may be presented to the user, allowing the user to select and view specific layers. In various embodiments, when the user moves a selection cursor over an object/feature (and/or otherwise selects the object/feature), an outline of the object/feature is displayed. Selecting an object/feature may result in viewing metadata associated with that object/feature.
0035In one embodiment, a user can quickly zoom in and out and/or move and pan the map interface to see more or less detail and a smaller or larger number of objects in a variety of ways. In various embodiments, the interactive data object mapping system may automatically generate feature/object lists and/or histograms based on selections made by the user. In various embodiments, the user may, among other actions, perform a geosearch (based on any selections made and/or shapes drawn), generate heatmaps, and/or perform a keyword search, as described below.
0036In one embodiment, the interactive data object mapping system includes server-side computing components and/or client-side computing components. The client-side components may implement, for example, displaying map tiles, rendering object contours, allowing the user to draw shapes, and/or allowing the user to select objects/features, among other actions. The server-side components may, among other actions, implement, for example, composing layers into map tiles, caching composite map tiles and/or layers, and/or providing object/feature metadata. Such functions can be distributed in any other way. In one embodiment, object/feature contouring and/or highlighting is accomplished client-side through the use of a UTF grid.
Definitions
0037To facilitate understanding of the systems and procedures explained here, a number of terms are defined below. The terms defined below, as well as other terms used herein, should be understood to include the definitions provided, the commonly used meanings of the terms, and/or any other implied meaning of the respective terms. Therefore, the following definitions do not limit the meaning of these terms, but only provide exemplary definitions.
0038Ontology: A hierarchical arrangement and/or grouping of data according to similarities and differences. The present disclosure describes two ontologies. The first concerns the arrangement of vector layers consisting of map and object data as used by the interactive data object map system (as hereinafter referred to<figref>2A-2B</figref>described). The second concerns the storage and arrangement of data objects in one or more databases (as referred to below).<figref>8A-8C</figref>described). For example, the stored data may include definitions for object types and property types for data in a database, as well as how objects and properties may be related.
0039Database: A broad term for any data structure for storing and/or organizing data, including, but not limited to, relational databases (Oracle database, MySQL database, etc.), spreadsheets, XML files, among others and text files.
0040Data object, object or feature: A data container for information that represents specific things in the world that have a set of definable properties. For example, a data object can represent an entity, such as a person, a place, an organization, a market instrument, or the like. A data object can represent an event that occurs at a point in time or during a period of time. A data object can represent a document or other unstructured data source, such as an email message, a news report, or a document or article. Each data object can be associated with a unique identifier that uniquely identifies the data object. The attributes of the object (e.g. metadata regarding the object) can be represented in one or more properties. For purposes of the present disclosure, the terms “feature,” “data object,” and “object” may be used interchangeably to refer to items displayed on the map interface of the interactive data object mapping system or accessed by the user using the interactive data object map system can be accessed otherwise. Features/objects may generally include, but are not limited to, roads, terrain (such as, but not limited to, hills, mountains, rivers and vegetation), street lights (which may be represented by a street light pictogram), railroads, hotels/motels (which may be represented by a bed pictogram), schools (which may be represented by a parent-child pictogram), hospitals, other types of buildings or structures, regions, Transportation objects and other types of entities, events, and documents, among others. Objects displayed on the map interface generally contain vector data, but other types of data can also be displayed. Objects generally have associated metadata and/or properties.
0041Object type: Type of data object (e.g. person, event, or document). Object types can be defined by an ontology and can be modified or updated to include additional object types. An object definition (e.g. in an ontology) may include how the object relates to other objects, for example that it is a sub-object type of another object type (e.g. An investigator can be a sub-object type of an object type 'Person'), as well as the properties that the object type can have.
0042Properties: These are also referred to as “metadata” and contain attributes of a data object/feature. At least a property metadata of a data object each has a type (for example a property type) and a value or values. Properties/metadata associated with features/objects may include any information relevant to that feature/object. For example, metadata associated with a "school" object may include an address (e.g., 123 S. Orange Street), a district (e.g., 509c), a grade elevation (e.g., K-6), and/or a telephone number (e.g., 800- 0000), among other metadata elements. In another example, metadata associated with a road object may include a speed (e.g., 25 mph), a width (e.g., two lanes), and/or a county (e.g., Arlington), among other data elements.
0043Property Type: The data type of a property, such as a string, an integer, or a double. Property types can include complex property types, such as a sequence of data values associated with time markers (e.g. a time series), etc.
0044Property Value: The value associated with a property that is of the type specified in the property type associated with the property. A property can have multiple values.
0045Link: A connection between two data objects, for example based on a relationship, an event, and/or matching properties. Links can be directional, such as a link representing a payment from person A to B, or they can be bidirectional.
0046Link set: A set of multiple links that are shared by two or more data objects.
DESCRIPTION OF THE FIGURES
0047Embodiments of the disclosure are described below with reference to the accompanying drawings, wherein like reference numerals refer to similar elements throughout the drawings. The terminology used in the description presented herein is not intended to be construed in any limiting or restrictive manner merely because it is used in connection with a detailed description of certain specific embodiments of the disclosure. Additionally, embodiments of the disclosure may include several novel features, none of which are solely responsible for their desired attributes nor are they essential to implementing the embodiments of the disclosure described herein.
0048<figref>1</figref>shows an example user interface of the interactive data object mapping system, according to an embodiment of the present disclosure. The user interface includes a map interface 100, a select button/icon 102, a shape button/icon 104, a layer button/icon 106, a geosearch button/icon 108, a heatmap button/icon 110, a search field 112, a feature information field 114, a coordinate information field 116, map scale information 118, zoom selector 120 and highlighted features 122. The functionality of the interactive data object mapping system may be implemented in one or more computer modules and/or processors, as hereinafter referred to<figref>8d</figref>is described.
0049The card interface 100 of<figref>1</figref>consists of several map tiles. The map tiles generally consist of multiple layers of geographic data, vector data, and/or other types of data. Vector data layers (also referred to as vector layers) may contain associated and/or linked data objects/features. In one embodiment, vector layers consist of data objects/features. The various data objects and/or features associated with a particular vector layer may be displayed to the user when that particular vector layer is activated. For example, a transportation vector layer may include a road, a railroad, and bike path objects and/or features that may be displayed to the user when the transportation layer is selected. The layers used to build the map tiles and map interface 100 may vary, for example, based on whether a user has selected features to be displayed in the map interface 100 and/or based on the specific layers a user chooses to use has selected ads. In one embodiment, composition of map tiles is accomplished by server-side components of the interactive data object mapping system. In one embodiment, assembled map tiles may be cached by the server-side components to speed delivery of map tiles to client-side components. The map tiles can then be sent to the client-side components of the interactive data object mapping system where they are assembled into the map interface 100.
0050In general, the user interface of<figref>1</figref>displayed on an electronic display viewable by a user of the interactive data object mapping system. The user of the interactive data object mapping system can use the user interface of<figref>1</figref>for example, by touching the display if it is a touch-sensitive display and/or using a mouse pointer to click on the various elements of the user interface.
0051The card interface 100 includes various highlighted features 122 and feature icons. For example, the map interface 100 includes roads, buildings and structures, utilities, lakes, rivers, vegetation, railroads, among other features. The user may interact with the map interface 100, for example, by hovering over and/or clicking on various features. In one embodiment, hovering over and/or placing the mouse pointer over a feature causes the feature to be outlined and/or otherwise highlighted. Additionally, the name of the feature and/or further information regarding the feature may be displayed in the feature information field 114.
0052The user of the card system can use the user interface of<figref>1</figref>interact by scrolling or panning up, down, and/or sideways; performs an enlargement or reduction; he selects characteristics; shapes draws; selects layers; conducts a geosearch; generates a heatmap; and/or performs a keyword search; among other actions that will be described later. Different user actions reveal more or less map details and/or more or fewer features/objects.
0053<figref>2a</figref>shows an example user interface of the mapping system in which map layers are displayed to a user, according to an embodiment of the present disclosure. In the user interface of<figref>2a</figref>the user has selected the layers button 106, which reveals the layers window 102. The layers window 102 includes a list of base layers, vector layers and user layers. The base layers include, for example, overhead image data, a topography, a template (Mercator), a base map, aeronautics, and a template (without projection). The vector layers include general categories such as regions, buildings/structures, terrain, transportation, and utilities/infrastructure. There are no user layers in the user interface<figref>2a</figref>included, however user layers can be added by the user of the card system, as will be described later.
0054In one embodiment, the user may select one or more of the base layers that may be used during assembly of the map tiles. For example, selecting the overhead imagery base layer creates map tiles where the underlying map tile imagery is created from recent aerial imagery data. Similarly, selecting the topography base layer creates map tiles where the underlying map tile image data includes topography map image data.
0055Further, in one embodiment, the user may select one or more of the vector layers that may be used during assembly of the map tiles. For example, selecting the transportation layer results in transportation-related objects and/or features being displayed on the map tiles. Transportation-related features may include, for example, roads, railroads, traffic signs, and/or street lighting. Examples of transportation-related features are in the user interface of<figref>2a</figref>to see which various road, railway and street lighting pictograms are displayed.
0056In one embodiment, the user of the mapping system can create and save map layers. These saved map layers can be listed as user layers in the layers window 202.
0057<figref>2b</figref>shows an example map layer ontology, according to an embodiment of the present disclosure. As before with reference to<figref>2a</figref>As mentioned, the list of vector layers in the layers window 202 may include general categories/layers, such as regions, buildings/structures, terrain, transportation, and utilities/infrastructure. The vector layers available in the mapping system can be further organized into an ontology or a hierarchical arrangement. For example, as shown in vector layers window 206, the buildings/structures category 208 may be further divided into layers including structures, public, medical, education, and commercial. Terrain category 210 may include vegetation and/or water/hydrographic layers. The utilities/infrastructure category may include fire and/or storage/drainage.
0058In one embodiment, the user of the mapping system may select one or more of the layers and/or sublayers of the layer ontology. As in<figref>2b</figref>shown, the user has deselected the vegetation sublayer, as well as all utility/infrastructure layers. Selecting and deselecting vector layers, or toggling vector layers on and off, may cause the vector objects and/or features associated with those layers to be displayed or not displayed in the map interface. For example, when the user selects the transportation category/layer, road objects associated with the transportation layer may be displayed on the map interface. Similarly, if a user deselects the transportation category/layer, road objects associated with the transportation layer may be removed from the map interface.
0059In one embodiment, additional hierarchy levels of layers may be displayed to the user. For example, the vector layer window 206 may include sub-sub-layers (e.g., the 'education' sub-layer may be divided into primary schools, secondary schools and post-secondary schools). Alternatively, a smaller number of hierarchy levels can be displayed to the user.
0060In one embodiment, each of the vector layers shown in the vector layers window 206 may be constructed from many layers of map vector data. In this embodiment, the mapping system can advantageously generate a simplified layer ontology, such as that shown in FIG. 206. The simplified layer ontology allows the user to easily select layers of interest from a reduced number of layers, rather than a large number of separate layers. As previously described, vector layers may contain data related to associated features and/or objects. This means that features visible in the map interface correspond to the currently active/selected layers. In one embodiment, the layer ontology may have an arbitrary depth.
0061<figref>2c</figref>shows an example user interface of the mapping system displaying various objects, according to an embodiment of the present disclosure. The user interface of<figref>2c</figref>includes a map interface 214, a contoured feature 216, and a feature information field 114 indicating that the contoured feature 216 is referred to as “Union Park.” Various features/objects may be seen in the map interface 214, including, for example, streets, buildings, terrain, streetlights (represented by a streetlight icon), railroads, hotels/motels (represented by a bed icon), and schools (represented by a parent icon). Child pictogram shown), among other features.
0062<figref>3a</figref>shows an example user interface of the mapping system with objects selected, according to an embodiment of the present disclosure. The user interface of<figref>3a</figref>includes a highlighted user selection rectangle 302. The highlighted user selection rectangle 302 represents how the user actively selects a particular area of the map interface so that the features/objects that fall within the boundaries of that rectangle are selected. In one embodiment, visible features can be selected by the user, whereas currently not visible features cannot be selected. For example, features related to currently inactive shifts are not selected when the user makes a selection. In another embodiment, even non-visible features in a selected area can be selected.
0063<figref>3b-3c</figref>show an example user interface of the mapping system in which objects are selected and a histogram 304 of the features is displayed in a selection window, according to embodiments of the present disclosure. The selected objects/features of<figref>3b</figref>(including roads 310 and other features 312) may have been highlighted using the highlighted user selection rectangle 302 of<figref>34a</figref>selected. Selected features are indicated by highlighted representation and/or changed colors on the map tiles that make up the map interface.
0064The feature histogram 304 is displayed in a selection window that appears in the user interface of<figref>3b</figref>is included. The histogram 304 shows a categorized histogram of all objects/features selected by the user in the map interface. The histogram divides the features into common positions and/or categories based on related metadata (also called metadata categories). For example, 306 "belongs to layer" indicates that the following histogram includes all selected features organized by layer category. In this example, there are, among other things, over 70,000 selected building/structure features, over 40,000 selected facility features, and over 6,000 selected street features. The feature histogram also contains 304 histograms of the selected objects, which are organized by account and acreage. In various embodiments, the mapping system may select histogram categories and/or metadata categories based on, among other things, the selected features and/or the types of selected features. Any further categorization of the selected features may be displayed in the histograms of feature histogram 304.
0065In one embodiment, the user of the mapping system may select a subset of the selected features for further analysis and/or histogram generation. For example, the user can select a subset that includes selected objects belonging to the category 'Street' by, for example, clicking on the entry '308 Streets'. This selection can result in a “drill-down” operation toward histograms of that subset of features, as in<figref>3c</figref>shown. Thus, a drill-down set of features/objects (e.g., the subset of features/objects) can be used by the mapping system to determine new drill-down metadata categories, or locations of related metadata. At 314 in<figref>3c</figref>the arrow pictogram indicates that, of the 124,172 features originally selected, the histogram of features now shows an analysis of the 6,724 features that belong to the 'road' category (see item 316). The feature histogram window of<figref>3c</figref>thus shows a new set of histograms, which are organized by shift, address, sender and branch, among other things. The user can therefore, using the displayed histograms, drill down and drill up through the selected features.
0066In one embodiment, items selected in the feature histogram are highlighted accordingly in the map interface of the map system. For example, in the map interface of<figref>3b</figref>the user selected the streets in the histogram at 308. Corresponding features (in this example, roads) are thus highlighted in the map interface (as shown at 310).
0067<figref>3D-3G</figref>show additional exemplary user interfaces of the mapping system in which objects have been selected from a histogram and are highlighted accordingly in the map interface, according to embodiments of the present disclosure. In<figref>3D 3F</figref>In the selection window, the user views a histogram of all selected streets, which are arranged in a histogram according to the driving speed limit. In<figref>3D</figref>the user has selected (at 318) streets with speed limits of 55 and 65. The corresponding road features are highlighted in the map interface, for example at 320. In<figref>3E</figref>the user has selected (at 322) streets with speed limits of 35, 45, 40, 55 and 65. The corresponding road features are highlighted in the map interface, for example at 324. In<figref>3f</figref>the user has selected (at 326) streets with speed limits of 25. The corresponding road features are highlighted in the map interface, for example at 328. In<figref>3G</figref>The user can "drill down" into the histogram, for example by right-clicking on an item and selecting "Remove other objects in histogram" (330).
0068<figref>3H</figref> und<figref>3i</figref>show exemplary user interfaces of the mapping system in which objects are selected and a list of selected objects 332 is displayed in the selection window, according to embodiments of the present disclosure. Referring to<figref>3H</figref>The list of features 332 indicates that the user can drill down further into the selected features<figref>3G</figref>by selecting a subset of selected features consisting of only roads with speed limits of 20. Thus, the subset of the example includes<figref>3H</figref>those 163 features which are roads with speed limits of 20. The user has additionally chosen to view the list of features in the selection window (instead of the feature histogram). The list of features 332 lists every single feature included in the currently selected subset. For example, the list includes S. Central Av 334, among others.
0069In<figref>3i</figref>At 336, the user selected the Hamilton St feature. In one embodiment, when a feature is selected from the list of features, the map interface automatically zooms to the location of that feature. The user can select the feature from the list of features by clicking on the name of the feature and/or the selected thumbnail. In one embodiment, zooming of the map interface to the feature occurs only when the user clicks and/or selects the thumbnail associated with the feature. In the example of<figref>3i</figref>The map interface automatically zooms to the location of the selected Hamilton St and the selected feature is highlighted (338). Additionally, the name of the selected feature is shown in the feature information field 114. In one embodiment, the name of the selected feature is shown in the feature information field 114 when the user moves the cursor to the thumbnail associated with the feature in the feature list. In one embodiment, the selected feature may be any other type of object and, when selected, may be outlined or otherwise highlighted.
0070In various embodiments, the user of the mapping system may select either the list of features or the histogram of features of the selection window to view information regarding the selected features.
0071<figref>3Y-3K</figref>show exemplary user interfaces of the mapping system in which objects are displayed contoured as the cursor moves over them, according to embodiments of the present disclosure. In<figref>3J</figref>the user moves the mouse cursor over a building feature. The feature on which the cursor is located is automatically outlined (340). Additionally, the name of the feature is displayed in the feature information field 114. In<figref>3K</figref>the user points to a protected area feature with the mouse cursor. The feature that the mouse pointer is over is automatically outlined (342), and the name of the feature is displayed in the feature information field 114. The user of the map system can cause any feature/object to be highlighted and/or contoured at any time by moving the mouse pointer over, moving the mouse pointer over, selecting and/or touching that feature/object in the map interface.
0072In various embodiments, a user may select a feature to view a feature information window. The feature information window may, for example, contain metadata associated with the selected feature. For example, the user may select a building feature, which results in displaying information associated with that building feature, such as, but not limited to, building size, building name, and/or the building address or location. Metadata associated with feature objects can include any information relevant to that feature/object. For example, metadata associated with a school may include, among other metadata elements, an address (e.g., 123 S. Orange Street), a district (e.g., 509c), a grade elevation (e.g., K-6), and/or a telephone number (e.g., 800-0000). In one embodiment, a history of the object, changes made to the object, and/or user comments related to the object may be displayed, among other elements. In one embodiment, a user may edit metadata associated with a selected feature.
0073<figref>4a-4d</figref>show exemplary user interfaces of the mapping system in which a radius geosearch is displayed, according to embodiments of the present disclosure. In<figref>4a</figref>the user has selected the shape button 104 and draws a circle selection 404 on the map interface by first selecting a center point and then a radius. The shape window 402 shows the center coordinates of the circle selection and the radius of the circle selection. In various embodiments, any type of polygon or other shape may be drawn on the map interface to select features.
0074In<figref>4b</figref>the user has selected the geosearch button 108 to perform a geosearch in the selection circle 408. In one embodiment, a geosearch includes searching one or more databases of data objects, and metadata associated with those data objects, for any objects that meet the geosearch criteria. For example, a geosearch may search for any objects with geographic metadata and/or properties that indicate that the object may be geographically located within the selection circle 408, for example. A geo search in a selection circle can be referred to as a radius search. The geosearch window 406 displays various information items related to the radius search and includes various parameters that can be adjusted by the user. For example, the geosearch window 406 includes a search area slider that the user can move to increase or decrease the radius of the selection circle 408. The user can also specify a time range for geosearch. In one embodiment, objects/features that are represented and/or searchable in the mapping system may include a time component and/or time metadata. Thus, for example, the user of the mapping system can specify a date or a time period, resulting in the display of any objects/features where the associated time metadata falls within the specified time period, for example. In various embodiments, associated time metadata may indicate, for example: a time the feature was created, a time the feature was added to a database of features, a time the feature was previously added to a vector layer, a A time when the feature was last accessed by the card system and/or a user, a time at which the feature was established, and/or any combination of the foregoing. Alternatively, the user can perform a selection and/or search for objects/features within specific time periods, as in<figref>4b</figref>shown. The geosearch window 406 also allows the user to specify the types of objects to be searched, such as, but not limited to, entities, events, and/or documents.
0075In one embodiment, the user of the mapping system may perform a search by clicking and/or touching a search button. The mapping system can then perform a search of an object database for any objects that match the criteria specified in the geosearch. For example, in the example of<figref>4b</figref>the map system carries out a search for any objects for which associated location information lies within the selection circle 408. Objects searched for by the map system may include objects other than those shown on the map interface. For example, in one embodiment, the mapping system may access one or more databases of objects (and object metadata) that may be unrelated to the features currently shown on the map interface, or features that may be related to the currently selected vector layers. The accessed databases may include databases external to any database that stores data associated with the card system. Any objects found during the geosearch can then be made available to the user (as in<figref>4b</figref>shown), and the user may be given the option to add the objects in a new layer in the map interface (as shown in the geosearch information window 406).
0076<figref>4c</figref>shows objects that follow the geo search in<figref>4b</figref>have been added to the map interface. The search results are also shown in the feature histogram 410. In this example, the returned objects include various entities and events.<figref>4d</figref>shows that the user selected all search result objects in the feature histogram for which the related metadata indicates a drug law violation. These selected objects are also available in the map interface<figref>4d</figref>highlighted. In another example, a geosearch may be used to determine, for example, that many crimes are concentrated in a downtown area of a city, but alcohol and/or drug driving (DUI) are more common in areas with slow-moving streets.
0077<figref>5A-5D</figref>show exemplary user interfaces of a mapping system in which a heatmap is displayed, according to embodiments of the present disclosure. In<figref>5a</figref>the user has selected the heatmap button 110 so that a heatmap 504 based on the in<figref>4d</figref>selected objects. A heatmap information window 502 is displayed in which the user can specify various parameters related to the generation of the heatmap. Referring to below<figref>5B</figref>For example, the user can adjust a radius 506 of the circular heatmap related to each selected object, an opacity 508 of the heatmap, a scale of the heatmap, and an automatic scaling setting. In<figref>5B</figref>The user reduced the opacity of the generated heatmap and zoomed in on the map interface so that various objects and the underlying map tiles could be viewed more clearly.
0078<figref>5c</figref>shows how, while the heatmap is displayed, the user selects various objects and/or features using the rectangle selection tool, for example to view information regarding the features in a histogram.<figref>5d</figref>shows the selected objects that are in<figref>5c</figref>were selected, are now highlighted (512).
0079In the map system, a heatmap can be created for any object type and/or for multiple object types. In one embodiment, different heatmap radii may be set for different object types. For example, the user can create a heatmap where streetlights have a 20m radius while hospitals have a 500m radius. In one embodiment, the heatmap may be generated based on arbitrary shaping. For example, instead of being circle-based, the heatmap may be a rectangle-based or ellipse-based heatmap. In one embodiment, the heatmap may be generated based on deviation ellipses and/or tolerance ellipses. A heatmap based on deviation ellipses can be beneficial if the objects in question have associated deviation regions. For example, if an object's location is uncertain, or multiple data points associated with an object are available, a deviation ellipse can help the user determine the object's true location.
0080<figref>5e-5f</figref>show exemplary user interfaces of the mapping system displaying a shape-based geosearch, according to embodiments of the present disclosure. In<figref>5e</figref>the user has selected the shape button 104 and a shape information window 514 is shown. In the user interface of<figref>5e</figref>the user has drawn lines 518, however any shapes can be drawn on the map interface. Information related to the drawn lines 518 is displayed in the shape information window 514. For example, at 516, the starting points, distance, and direction angle related to the line are displayed. A total distance from the beginning to the end of the line is also shown.
0081<figref>5f</figref>shows a geo search that is carried out at the in<figref>5e</figref>drawn line shape is carried out. A geosearch information window 520 indicates a search area 522, a time range 524 and an object type 526, as previously referred to<figref>4b</figref>was described. The search area is indicated on the map interface by the highlighted area 528 along the drawn line. Conducting geosearch and viewing its results can be done in a similar way as previously referred to<figref>4b-4d</figref>described. For example, a geosearch along a path can be used to determine points of interest along that path.
0082<figref>5G</figref>shows an example user interface of the mapping system displaying a keyword object search, according to an embodiment of the present disclosure. The user may, among other things, type words, keywords, numbers, and/or geographic coordinates into the search field 112. In<figref>5G</figref>the user typed 'Bank' (530). As the user types, the mapping system automatically searches for objects and/or features that match the typed information. Matching can occur based on object data and/or metadata. Search results will be as at 532 in<figref>5G</figref>shown. The example shows a list of banks (bank characteristics). The user can then select from the list shown, at which point the mapping system automatically zooms in on the selected feature and identifies the selected feature with an arrow 534. In various embodiments, the selected feature may be identified by highlighted display, contoured display, and/or any other type of indicator. In one embodiment, search field 112 may be linked to an alphabetical gazetteer to enable simple word searches for specific geographic locations. For example, a search for a name of a city, New York, may be linked to the city's geographic coordinates, which takes the user directly to that location on the map interface.
0083<figref>5H</figref>shows an example of a UTF grid on the card system, according to an embodiment of the present disclosure. In one embodiment, the UTF grid enables an outline representation of the feature and/or a highlighted representation of many objects with client-side components. In one embodiment, each map tile (or image) of the map interface includes an associated textual UCS Transformation Format (UTF) grid. In<figref>5H</figref>An example map tile 526 is shown adjacent to an associated example UTF grid square 538. In this example, the map tile and its associated UTF grid square are created by the server-side components and sent to the client-side components. In the UTF grid, each character represents a pixel in the map tile image, and each character indicates which feature is associated with the pixel. Each character in the UTF grid may additionally be associated with a feature identifier, which can be used to query metadata associated with the feature.
0084Contiguous regions of characters in the UTF grid denote the boundaries of a particular feature, and may be used by the client-side components to provide the highlighted representation and/or contoured representation of the feature. For example, when a user hovers a mouse pointer over a feature on a map tile, the mapping system determines the character and portion of the UTF grid associated with the pixel the mouse pointer was hovered over, draws a feature outline based on the UTF Grid, and may additionally access metadata associated with the feature based on the feature identifier associated with the feature. In one embodiment, the UTF grid is sent to the client-side components in a JavaScript Object Notation (JSON) format.
0085<figref>6a</figref>1 shows a flowchart illustrating client-side operations of the card system, according to an embodiment of the present disclosure. In various embodiments, a smaller number of blocks or additional blocks may be included in the process, or different blocks may be performed in an order different from that in<figref>6a</figref>the order shown is different. In one embodiment, one or more blocks may be in<figref>6a</figref>be carried out by client-side components of the card system, for example computer system 800 (hereinafter referred to<figref>8d</figref>described).
0086At block 602, the card system provides the user with a user interface (e.g., the user interface of<figref>1</figref>). As described above and below, the user interface may be provided to the user using any electronic device, such as, but not limited to, a desktop computer, a laptop computer, a mobile smartphone, and/or a tablet computer. At block 604, input is received from the card system user. For example, the user may use a mouse to move and/or click an element on the user interface, or the user may touch the display of the interface (in the example of a touch screen device).
0087Input received from the user may include, for example: moving on, moving over, and/or touching an object in the user interface (606); filling out a text field (614); drawing a shape in the user interface (608) and/or drawing a selection box and/or a shape in the user interface (610); in addition to other actions or inputs described previously.
0088At block 612, any of inputs 606, 614, 608, and 610 may cause the card system to perform client-side actions to update the user interface. For example, moving a mouse pointer over an object (606) may cause the client-side components of the mapping system to access the UTF grid, determine the boundaries of the object, and draw an outline around the object pointed to by the mouse pointer. In another example, filling out a text field (614) may involve the user entering data into the card system. In this example, the user may enter geographic coordinates, metadata, and/or other types of data into the mapping system. These actions may, for example, cause the client-side components of the card system to store the entered data and/or take action based on the entered data. For example, entering coordinates by the user may result in the map interface being updated to display the entered information, for example an entered name is overlaid on a specific object. In yet another example, the actions/inputs of drawing a shape (608) and/or drawing a selection (610) may cause the client-side components of the mapping system to color and/or highlight the user interface Update the shapes shown (see for example<figref>3a)</figref>.
0089In one embodiment, one or more blocks may be in<figref>6a</figref>be carried out by server-side components of the card system, for example server 830 (hereinafter referred to<figref>8d</figref>described).
0090<figref>6b</figref>1 shows a flowchart illustrating an illustrative client-side retrieval of map system metadata, according to an embodiment of the present disclosure. In various embodiments, a smaller number of blocks or additional blocks may be included in the process, or different blocks may be performed in an order different from that in<figref>6b</figref>the order shown is different. In one embodiment, one or more blocks may be in<figref>6b</figref>be carried out by client-side components of the card system, for example the computer system 800.
0091At block 620, the client-side components of the mapping system detect that the user is moving to and/or touching an object in the user interface. At block 622, and as previously described, the client-side components may access the UTF grid to determine the feature identifier and object boundaries associated with the object over which the mouse pointer is positioned. Then, at block 624, the client-side components may render the feature shape on the image or map interface. The shape of the feature may be represented as a contoured representation and/or another highlighted representation.
0092At block 636, the client-side components detect whether the user has selected the object. For example, objects can be selected when the user clicks or touches the object. If the user has selected the object, then, at block 628, the client-side components query the server-side components to retrieve metadata associated with the selected object. In one embodiment, querying the server-side components may include sending the feature identifier associated with the selected object to the server, the server retrieving the relevant metadata from a database, and the server returning the retrieved metadata to the client-side components sends.
0093At block 630, the metadata is received by the client-side components and displayed to the user. For example, among other possibilities, the metadata associated with the selected object can be displayed to the user in the user interface in a specifically designated metadata window.
0094In one embodiment, one or more blocks may be in<figref>6b</figref>be carried out by server-side components of the card system, for example Server 830.
0095<figref>7a</figref>FIG. 12 shows a flowchart illustrating server-side operations of the card system, according to an embodiment of the present disclosure. In various embodiments, a smaller number of blocks or additional blocks may be included in the process, or different blocks may be performed in an order different from that in<figref>7a</figref>the order shown is different. In one embodiment, one or more blocks may be in<figref>7a</figref>be carried out by server-side components of the card system, for example Server 830.
0096Server-side operations of the map system may include creating and updating the map tiles that make up the map interface. For example, if the user changes the selection of the base layer and/or one or more of the vector layers, the map tiles are recreated and updated in the map interface to reflect the user's selection. Selecting objects that results in a highlighted display of those objects may also involve redrawing the map tiles. Further, UTF grids can be generated by the server-side components for each created map tile.
0097At block 702, the user interface is provided to the user. At block 704, input is received from the user. Input received from the user that may result in server-side operations may include, for example, selecting an object (706), changing a layer selection (708), geosearching (710), generating a heatmap (712)., searching via the search field (714) and/or moving or zooming in/out the map interface.
0098At block 716, the client-side components of the card system may query the server-side components in response to any of the user inputs 706, 708, 710, 712, and 714. The server-side components then update and recreate the map tiles and UTF grids of the map interface according to user input (as discussed later<figref>7b</figref>), and then these updated map tiles and UTF grids are sent back to the client-side components.
0099At block 718, the client-side components receive the updated map tile information from the server, and at block 720 the user interface is updated with the received information.
0100In one embodiment, additional information and/or data, in addition to updated map tiles, may be sent from the server-side components to the client-side components. For example, object metadata may be sent in response to a user selecting an object.
0101In one embodiment, one or more blocks may be in<figref>7a</figref>be carried out by client-side components of the card system, for example the computer system 800.
0102<figref>7b</figref>FIG. 12 shows a flowchart illustrating an explanatory server-side layer composition of the card system, according to an embodiment of the present disclosure. In various embodiments, a smaller number of blocks or additional blocks may be included in the process, or different blocks may be performed in an order different from that in<figref>7b</figref>the order shown is different. In one embodiment, one or more blocks may be in<figref>7b</figref>be carried out by server-side components of the card system, for example Server 830.
0103At block 730, a query is received from the client-side components by the server-side components. Such a query can, for example, be from block 716 of<figref>7a</figref>originate. At block 732, the server-side components determine the composition of the map tile based on the query. For example, if the user has selected an object or group of objects, the map tiles containing those objects may be updated to include highlighted objects. In another example, if the user has changed the layer selection, the map tiles may be updated to include only those layers that are currently selected. In the example of<figref>7b</figref>The currently selected layers are determined and the layers are created and/or rendered into map tiles. In another example, if the user performed a geosearch and chose to add the search result objects to the map interface, the map tiles are updated to include those search result objects. In yet another example, if the user has generated a heatmap, the map tiles are updated to show the generated heatmap. In another example, when the user performs a search using the search box, the selected objects may be highlighted in the recreated map tiles. In another example, when the user performs panning and/or zooming in the map interface, the map tiles are updated to reflect the new view selected by the user. In all cases, an updated UTF grid can also be generated for each map tile created.
0104At block 734, the mapping system determines whether the layers required to create the requested map tiles are cached. For example, when a tier is selected by the user, that tier may be created by the mapping system and placed in memory of the server-side components for future retrieval. Caching created layers can avoid the need to recreate these layers later, which can advantageously save time and/or computing power.
0105If the required layers are cached, then at block 740 the layers are assembled into the requested map tiles and, at block 742, sent to the client-side components.
0106If the required layers are not cached, then at block 736, the server-side components calculate and/or create the requested layer and/or layers, and then, at block 738, optionally, the newly created layers for future retrieval cache. Then, at blocks 740 and 742, the layers are assembled into map tiles and delivered to the client-side components.
0107In one embodiment, entire map tiles may be cached by the server-side components. In one embodiment, the size and/or quality of the map tiles that make up the map interface may be selected and/or selected dynamically based on at least one of: the bandwidth required to send the map tiles to the client side components available, the size of the card interface, and/or the complexity of the layer composition, among other factors. For example, in one embodiment, the map tiles include images in one or more of the following formats: PNG, GIF, JPEG, TIFF, BMP, and/or any other type of suitable image format.
0108In one embodiment, the layer and object data assembled into layers and map tiles include vector data. The vector data (e.g., object data) may include associated metadata, as previously described. In one embodiment, the vector, layer and/or object data and associated metadata may come from one or more databases and/or electronic data stores.
0109In one embodiment, one or more blocks may be in<figref>7b</figref>be carried out by client-side components of the card system, for example computer system 800.
0110In one embodiment, the mapping system can simultaneously display more than 50 million selectable features to a user. In one embodiment, the mapping system can support a two- or three-digit number of users accessing the same map and object data simultaneously. In one embodiment, map and object data used by the mapping system may be mirrored and/or distributed across multiple computers, servers, and/or server-side components.
0111In one embodiment, instead of updating the map tiles to reflect a user selection of one or more objects, the mapping system may present the user with an approximate representation of the selection based on client-side processing.
0112In one embodiment, a user may drag and drop files, such as vector data and/or vector layers, onto the mapping system user interface, which causes the mapping system to automatically render the file in the mapping interface.
0113In one embodiment, icons and/or styles associated with various objects in the map interface may be updated and/or changed by the user. For example, the styles of the various objects can be specified in or through a style data file. The style data file may be formatted according to a special format or standard that can be read by the card system. In one embodiment, the style data file is formatted according to the JSON format standard. The user can thus change the appearance of the objects and shapes rendered in the map system's map interface by modifying the style data file. The style data file can further define the appearance for objects and terrain (among other elements and data) at different zoom levels.
0114In one embodiment, objects, nodes, metadata, and/or other types of data may be added to the mapping system by the user using the user interface. In one embodiment, information added by a user may be shared between multiple users of the card system. In one embodiment, a user of the mapping system can add annotations and shapes to the map interface, which can be saved and shared with other users. In one embodiment, a user of the mapping system may share a selection of objects with one or more other users.
0115In one embodiment, the mapping system user interface may include a timeline window. The timeline window may allow the user to view objects specific to particular moments in time and/or time periods. In one embodiment, the user may view tolerance ellipses overlaid on the map interface indicating the likely position of an object over a specific period of time.
0116In one embodiment, the mapping system may include elevation profiling. Elevation profiling may enable a user of the system to, among other things, determine elevation along a path on the map interface, perform viewing area analysis (determine objects and/or terrain that can be seen from a specific location), reverse analysis (for a specific location, to determine objects and/or terrain from which the location can be seen).
0117In one embodiment, vector data, object data, metadata, and/or other types of data may be prepared before being entered into or accessed by the mapping system. For example, the data may be converted from one format to another, crawled for common metadata elements, and/or prepared for application of a style file or style information, among other actions. In one embodiment, a layer ontology may be automatically generated based on a set of data. In one embodiment, the mapping system can access common data sources available on the Internet, for example street data available from 'openstreetmap.org'.
0118In one embodiment, maps displayed in the map interface are labeled by their names, and buildings are rendered in fake 3D to indicate the heights of buildings. In one embodiment, Blue Force Tracking may be integrated into the mapping system as a layer that has the characteristics of both a static vector layer and a dynamic vector layer. A “Blue Force” layer can enable use of the mapping system for live operational analysis. In one embodiment, the mapping system can perform rapid rendering of detailed choropleth maps or heatmaps with minimal data transfer. For example, the system may render a choropleth map that has a property value regarding the individual shapes of the properties themselves, rather than aggregating this information at the county or zip code level.
0119Advantageously, the mapping system displays many data elements, objects, features, and/or layers in a single mapping interface. A user can easily interact with things on the map and gather information by hovering over or selecting features, even if those features have no label. The user can select features, can drill down on a specific type of feature (e.g., roads), can view features using histograms, can use histograms to determine common license plates (e.g., determine the most common speed limit), and /or can determine correlations between features (e.g. detecting that zones with lower speed limits are around schools). The card system can also be useful in many different situations. For example, the system may be useful for operations planners and/or disaster response personnel.
0120Additionally, the mapping system accomplishes at least three core ideas: providing a robust and fast back-end (server-side) rendering engine, maintaining data at the back-end, and transferring only the data required to accomplish interactivity. In one embodiment, the primary function of the server-side components is to render map tiles. The server is capable of drawing highly detailed maps with a variety of styles that can be based on vector metadata.
0121Rendered map tiles for a vector layer are cached, and multiple of these layer tiles are drawn on top of each other to produce the final tile that is sent to the client-side browser. Map tile rendering is fast enough to present the user with dynamic tiles that can be selected and highlighted. Server-side operations allow, for example, dynamic selection of very large numbers of features, calculation of the histogram, determination of the number of displayed and/or selected elements, and drawing of the selection. Furthermore, the heatmap can contain large numbers of points without the disadvantage of having to transfer these points to the client-side browser. Additionally, the fact that only as much data is transferred as necessary for interactivity allows for rapid server rendering of dynamic selections and vector layers. On the other hand, highlighting features pointed to by the mouse cursor can be performed almost instantaneously on the client side, and this provides useful feedback that improves the interactivity of the mapping system. In one embodiment, to avoid transmitting too much geometry data, the geometries of objects (in the map tiles and the UTF grid) are downsampled depending on how much the user has zoomed in on the map interface. Thus, the map tiles can be rendered and presented to a user of the mapping system in a dynamic and usable manner.
Object-centered data model
0122To provide a framework for the following discussion of specific systems and methods described above and below, an example database system 1210 using an ontology 1205 is described below. This description is provided to provide an example and is not intended to limit the methods to the example data model, the example database system, or the example database system's use of an ontology to represent information.
0123In one embodiment, a data body is conceptually structured according to an object-centered data model represented by an ontology 1205. The conceptual data model is independent of any specific database used for persistent storage of one or more databases 1209 based on ontology 1205. For example, each object of the conceptual data model may correspond to one or more rows in a relational database, or an entry in a Lightweight Directory Access Protocol (LDAP) database, or any combination of one or more databases.
0124<figref>8a</figref>shows an object-centered conceptual data model according to one embodiment. An ontology 1205, as previously mentioned, may include stored information that provides a data model for storing data in the database 1209. The ontology 1205 may be defined by one or more object types, each of which may be associated with one or more property types. At the highest level of abstraction, a data object 1201 is a container for information representing the things of the world. For example, a data object 1201 may represent an entity, such as a person, a place, an organization, a market instrument, or the like. A data object 1201 may represent an event that occurs at a time or during a period of time. A data object 1201 may represent a document or other unstructured data source, such as an email message, a news report, or a document or article. Each data object 1201 is associated with a unique identifier that uniquely identifies the data object in the database system.
0125Different types of data objects can have different property types. For example, a "Person" data object could have a "Eye Color" property type, and an "Event" data object could have a "Date" property type. Each property 1203, as represented by data in the database system 1210, may have a property type defined by the ontology 1205 used by the database 1205.
0126Objects may be instantiated in the database 1209, according to the corresponding object definition for the specific object in the ontology 1205. For example, a specific monetary payment (e.g. an event type object of US$30.00 (e.g. a property of type "Currency") that occurs on 3/27/2009 (e.g. a property of type “Date”) is stored in the database 1209 as an event object, with associated currency and date properties as defined in the ontology 1205.
0127The data objects defined in the ontology 1205 can support property multiplicity. Specifically, it may be permissible for a data object 1201 to have more than a single property 1203 of the same property type. For example, a “Person” data object could have multiple “Address” properties or multiple “Name” properties.
0128Each link 1202 represents a connection between two data objects 1201. In one embodiment, the connection is either through a relationship, an event, or matching properties. A relationship connection can be asymmetrical or symmetrical. For example, a data object A "Person" can be connected to a data object B "Person" through a child relationship (where a data object B "Person" has an asymmetric parent relationship to a data object A "Person") symmetrical relationship to a data object C “Person”, and an asymmetrical member relationship to a data object X “Organization”. The type of relationship between two data objects can vary depending on the types of data objects. For example, a data object A "Person" may have an "Appears In" relationship with data object Y "Document" or may have a "Participates In" relationship with a data object E "Event". As an example of an event connection, two "Person" data objects can be connected by a "Flight" data object, which represents a specific flight if they traveled together on this flight, or by a "Conference" data object, which represents a specific conference. if they both attended this conference. In one embodiment, when two data objects are connected by an event, they are also connected by relationships, where each data object has a specific relationship to the event, such as an "Appears In" relationship.
0129As an example of a "matching properties" connection, two data objects "Person" representing a brother and a sister may both have an "Address" property indicating where they live. If the brother and sister live at the same residence, then their Address properties contain similar, if not identical, property values. In one embodiment, a link may be created between two data objects based on similar or matching properties (e.g., property types and/or property values) of the data objects. These are just some examples of the types of connections that can be represented by a link, and other types of connections can be represented; Embodiments are not limited to any specific types of connections between data objects. For example, a document could contain references to two different objects. For example, a document may contain a reference to a payment (one object) and a person (a second object). A link between these two objects can represent a connection between these two entities through their co-occurrence in the same document.
0130Each data object 1201 may have multiple links with another data object 1201 to form a link set 1204. For example, two "Person" data objects representing a husband and wife could be linked by a "Spouse" relationship, a matching "Address" property, and one or more matching "Event" properties (e.g., a wedding). be. Each link 1202, as represented by data in a database, may have a link type defined by the database ontology used by the database.
0131<figref>8b</figref>is a block diagram depicting example components and data that can be used in identifying and storing data according to an ontology. In this example, configuring the ontology and populating the data model with data can be done through a system of parsers and ontology configuration tools. In the embodiment of<figref>8b</figref>Input data 1300 is delivered to a parser 1302. The input data can include data from one or more sources. For example, an organization may have one or more databases containing information regarding credit card transactions, rental cars, and people. The databases may contain a variety of related information and attributes regarding each type of data, such as a “date” for a credit card transaction, an address for an individual, and a date for borrowing a rental car. The parser 1302 is capable of reading a variety of input data types from a source and determining what type of data it is reading.
0132In accordance with the previous discussion, the example ontology 1205 includes stored information that provides the data model of data stored in the database 1209, and the ontology is represented by one or more object types 1310, one or more property types 1316, and one or more link types 1330 Are defined. Based on information determined by the parser 1302 or another mapping of source input information to an object type, one or more data objects 1201 may be instantiated in the database 1209 based on respective particular object types 1310. Two data objects 1201 can be connected by one or more links 1202 that can be instantiated based on link types 1330. The property types 1316 may each include one or more data types 1318, such as a string, a number, etc. Property types 1316 may be instantiated based on a base property type 1320. For example, a base property type 1320 may be “Locations” and a property type 1316 may be “Residence”.
0133In one embodiment, a user of the system uses an object type editor 1324 to create and/or modify the object types 1310 and define attributes of the object types. In one embodiment, a user of the system uses a property type editor 1326 to create and/or modify the property types 1316 and define attributes of the property types. In one embodiment, a user of the system uses a link type editor 1328 to create the link types 1330. Alternatively, other programs, processes, or program controls can be used to create link types and property types and define attributes, and the use of editors is not required.
0134In one embodiment, creating a property type 1316 using the property type editor 1326 includes defining at least one parser definition using a parser editor 1322. A parser definition includes metadata that informs a parser 1302 how to parse input data 1300 to determine whether values in the input data can be assigned to the property type 1316 associated with the parser definition. In one embodiment, each parser definition may include a regular expression parser 1304A or a code module parser 1304B. In further embodiments, other types of parser definitions may be provided using scripts or other program elements. Both a regular expression parser 1304A and a code module parser 1304B, once defined, can provide input to the parser 1302 to control parsing of input data 1300.
0135Using the data types defined in the ontology, input data 1300 may be parsed by parser 1302 to determine which object type 1310 should receive data from a data set created from the input data, and which property types 1316 are assigned to data from each field value in the input data should. Based on the object property-<figref num="1301" />the parser 1302 selects one of the parser definitions associated with a property type in the input data. The parser then parses an input data field using the selected parser definition, resulting in new or modified data 1303 being generated. The new or modified data 1303 is added to the database 1209 according to an ontology 1205 by storing values of the new or modified data in a property of the specified property type. As a result, input data 1300 having variable format or syntax may be created in the database 1209. The ontology 1205 may be modified at any time using an object type editor 1324, a property type editor 1326, and a link type editor 1328, or programmatically without human intervention via the editor. The parser editor 1322 enables creation of multiple parser definitions that can successfully parse input data 1300 of variable format or syntax and determine which property types should be used to transform input data 1300 into new or modified input data 1303.
0136The properties, objects, or links (e.g., relationships) between the objects can be visualized using a graphical user interface (GUI). For example, in<figref>8c</figref>a user interface is shown that shows a diagrammatic representation 1403 of relationships (including relationships and/or links 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412 and 1413) between the data objects (including data objects 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428 and 1429) shows the example of<figref>8c</figref>are represented as nodes. In this embodiment, the data objects include "Person" objects 1421, 1422, 1423, 1424, 1425, and 1426; a “flight” object 1427; a cash account 1428; and a “computer” object 1429. In this example, each "Person" node (associated with "Person" data objects), "Flight" node (associated with "Flight" data objects), "Cash Account" node (associated with "Cash Account" -Data objects) and "Computer" node (which is associated with "Computer" data objects) have relationships and/or links with any of the other nodes, for example through further objects such as "Payment" objects.
0137For example, based in<figref>8c</figref>the relationship 1404 on a payment associated with the people identified in “Person” data objects 1421 and 1423. Link 1404 represents these collaborative payments (for example, the person associated with data object 1421 may have made a payment to the person associated with data object 1423 on three occasions). The relationship is further denoted by the common relationship between “Person” data objects 1421 and 1423 and “Cash Account” data object 1428. For example, the link 1411 indicates that the "Person" data object 1421 transferred money into a "Cash Account" data object 1428, whereas the "Person" data object 1423 transferred money from a "Cash Account" data object 1428. In another example, the relationships between "Person" data objects 1424 and 1425 and "Flight" data object 1427 are designated by links 1406, 1409 and 1410. In this example, the "Person" data objects 1424 and 1425 have a common address and were passengers on the same "Flight" data object 1427. In one embodiment, additional details relating to the relationships between the various objects may be displayed. For example, in some embodiments, links 1411 and 1412 may indicate the timing of respective fund transfers. In another example, the time of the flight associated with the "flight" data object 1427 may be shown.
0138Relationships between data objects may be stored as links, or in some embodiments, they may be stored as properties, where a relationship between the properties may be captured. In some cases, as previously stated, the links may be directional. For example, a "Payment" link may have a direction associated with the payment, where one "Person" object is a recipient of a payment and another "Person" object is the payer of a payment.
0139In various embodiments, data objects may further include geographic metadata and/or links. Such geographic metadata may be accessed through the interactive data object mapping system to display objects and features on the map interface (as previously described).
0140In addition to a visual representation of relationships between the data objects, the user interface can enable various other edits. For example, the objects in the database 1108 may be searched for (e.g., performing text string matching on object properties), inspected (e.g., viewing properties and associated data), filtered (e.g., looking at properties and associated data) using a search interface 1450. b. the entirety of objects can be limited based on properties or relationships to sets and subsets), and statistically aggregated (e.g. numerically summed up based on summation criteria), among other operations and visualizations. Additionally, as previously described, objects in the database 1108 may be searched for, accessed, and implemented in the map interface of the interactive data object mapping system, for example, using a geosearch and/or a radius search.
Implementation mechanisms
0141According to one embodiment, the interactive data object mapping system and other methods and methods described herein are implemented by one or more special purpose computing devices. The specialized computing devices may be hardwired to perform the methods or may include digital electronic devices such as one or more ASICs (application specific integrated circuits) or FPGAs (field programmable gate arrays) that are persistently programmed to perform the methods or them may include one or more general purpose hardware processors programmed to to perform the methods according to program instructions in firmware, a memory, another storage device, or a combination of these. Such specialized computing devices may also combine custom hardwired logic, ASICs, or FPGAs with custom programming to accomplish the methods. The specialized computing devices may be desktop computer systems, server computer systems, portable computer systems, handheld devices, network devices, or any other device or combination of devices that include hardwired logic and/or program logic to implement the methods.
0142The computing device(s) is/are generally powered by operating system software such as iOS, Android, Chrome OS, Windows XP, Windows Vista, Windows 7, Windows 8, Windows Server, Windows CE, Unix, Linux, SunOS, Solaris, iOS, Blackberry OS, VxWorks, or other compatible operating systems controlled and coordinated. In further embodiments, the computing device may be controlled by a proprietary operating system. Conventional operating systems control, among other things, computational processes to be executed and their timing, perform memory management, provide a file system, network functionality and input/output services, and provide user interface functionality such as a graphical user interface (“GUI”).
0143For example is<figref>8d</figref>a block diagram illustrating a computer system 800 in which the various systems and methods discussed herein may be implemented. The computer system 800 includes a bus 802 or other communication mechanism for communicating information, and a hardware processor, or processors, 804 connected to the bus 802 to process information. The hardware processor(s) 804 may be, for example, one or more general purpose microprocessors.
0144The computer system 800 also includes a main memory 806, such as a RAM (random access memory), a cache, and/or other dynamic storage devices, connected to the bus 802 to store information and instructions to be executed by the processor 804. Main memory 806 may also be used to store temporary variables or other intermediate information during execution of instructions to be executed by processor 804. Such instructions, when stored in storage media accessible to processor 804, make computer system 800 a specialized machine customized to perform the operations specified in the instructions.
0145The computer system 800 further includes a ROM (read-only memory) 808 or other static storage device connected to the bus 802 to store static information and instructions for the processor 804. A storage device 810, such as a magnetic disk, an optical disk, or a USB stick (flash drive), etc., is provided and connected to the bus 802 to store information and instructions.
0146The computer system 800 may be connected via bus 802 to a display 812, such as a cathode ray tube (CRT), an LCD display, or a touchscreen display, to display information and/or input to a user of the computer received from the user. An input device 814, including alphanumeric keys and other keys, is connected to bus 802 to transmit information and selected commands to processor 804. Another type of user input device is a cursor controller 816, such as a mouse, trackball, or cursor directional keys, to provide directional information and selected commands to processor 804 and to control cursor movement on display 812. This input device typically has two degrees of freedom in two axes, a first axis (e.g. x) and a second axis (e.g. y), which allows the device to designate positions in a plane. In some embodiments, the same directional information and command selection as cursor control may be implemented by receiving touches on a touchscreen without a cursor.
0147The computer system 800 may include a user interface module, and/or various other types of modules, to implement a GUI, a map interface, and the various other aspects of the interactive data object map system. The modules may be stored in a mass storage device as executable software codes that are executed by the computing device(s). These and other modules can include, for example, components such as software components, object-oriented software components, class components and task components, processes, functions, attributes, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuits, data, databases, data structures, tables, Include fields and variables.
0148Generally, the word "module" as used herein refers to logic implemented as hardware or firmware, or a collection of software instructions, which may have entry and exit points, and is written in a programming language such as Java, Lua, C, or are written in C++. A software module can be compiled and linked into an executable program, built into a dynamic link library, or written in an interpreted programming language such as BASIC, Perl, or Python. It is understood that software modules may be callable by other modules or by themselves, and/or they may be called in response to detected events or interrupts. Software modules configured for execution on computing devices may be provided on a computer-readable medium, such as a CD (Compact Disk), a DVD (Digital Video Disk), a flash memory drive, a magnetic disk, or any other tangible form media, or as a digital download (and may originally be saved in a compressed or installable format that requires installation, requires decompression or decryption before execution). Such software code may be stored, in part or in whole, in a working memory of the executing computing device for execution by the computing device. Software instructions may be embedded in firmware, such as an EPROM. It is further understood that hardware modules may include connected logic units, such as gates and flip-flops, and/or may include programmable units, such as programmable gate arrays or processors. The modules or functionality of the computing device described herein are preferably implemented as software modules, but may be implemented in the form of hardware or firmware. In general, the modules described here refer to logical modules that may be combined with other modules or divided into submodules, regardless of their physical organization or storage location.
0149In the computer system 800, the methods described herein may be implemented using custom hardwired logic, one or more ASICs or FPGAs, firmware, and/or program logic that, in combination with the computer system, cause or program the computer system 800 to be a special purpose machine. According to one embodiment, the methods described herein are performed by computer system 800 in response to processor(s) 804 executing one or more sequences of one or more modules and/or instructions contained in main memory 806. Such instructions can be read into the main memory 806 from another storage medium, for example the storage device 810. Execution of the instruction sequences contained in main memory 806 causes processor(s) 804 to execute the process steps described herein. In alternative embodiments, hardwired circuits may be used instead of or in combination with software instructions.
0150The term “non-transitory media” and similar terms as used herein refer to any media that stores data and/or instructions that cause a machine to operate in a specific manner. Such non-transitory media may include non-volatile media and/or volatile media. Non-volatile media includes, for example, optical or magnetic disks, such as storage device 810. Volatile media includes dynamic memory such as main memory 806. Common forms of non-transitory media include, for example, a floppy disk, a flexible disk, a hard drive, a solid-state drive, a magnetic tape or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with hole patterns, a RAM, a PROM and an EPROM, a flash EPROM, an NVRAM, and any other memory chip or cartridge, and network-connected versions of these.
0151Non-transitory media is different from, but can be used in conjunction with, transmission media. Transmission media participate in the transfer of information between storage media. For example, transmission media include coaxial cable, copper wire, and fiber optic cable, including the wires that bus 802 includes. Transmission media can also take the form of sound or light waves, such as those generated in radio and infrared data communications.
0152Various forms of media may be involved in executing one or more sequences of one or more instructions to be executed by processor 804. For example, the instructions may initially be stored on a magnetic disk or solid-state drive of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem located on computer system 800 can receive the data over the telephone line and use an infrared transmitter to convert the data into an infrared signal. An infrared detector can receive the data carried in the infrared signal, and suitable circuitry can place the data on bus 802. Bus 802 carries the data to main memory 806 from which processor 804 retrieves and executes the instructions. The instructions received from main memory 806 may optionally be stored in storage device 810 either before or after execution by processor 804.
0153The computer system 800 also includes a communications interface 818 connected to the bus 802. The communication interface 818 provides a two-way data communication connection to a network connector 820 that is connected to a local area network 822. For example, a communications interface 818 may be an Integrated Services Digital Network (ISDN) card, a cable modem, a satellite modem, or a modem to provide a data communications connection to a corresponding type of telephone line. As another example, a communications interface 818 may be a local area network (LAN) card to provide a data communications connection to a compatible LAN (or may be a WAN device to communicate with a WAN. Wireless connections may also be implemented. In any such implementation, a communications interface 818 sends and receives electrical, electromagnetic, or optical signals carrying digital data streams representing various types of information.
0154The network connector 820 typically provides data communication to other data devices over one or more networks. For example, the network connector 820 may provide a connection to a host computer 824 or to data facilities operated by an Internet service provider (ISP) 826 via a local area network 822. The ISP 826, in turn, provides data communications services over the global packet data communications network, now commonly referred to as the “Internet” 828. Both the local area network 822 and the Internet 828 use electrical, electromagnetic or optical signals that can carry digital data streams. The signals traveling over the various networks and the signals traveling over the network connector 820 and over the communications interface 818 that carry the digital data to and from the computer system 800 are exemplary forms of transmission media.
0155The computer system 800 may send and receive messages and data, including program code, over the network(s), the network connector 820, and the communications interface 818. In the example of the Internet, a server 830 could provide a requested code for a Send application program over the Internet 828, the ISP 826, the local network 822 and the communication interface 818. Server-side components of the interactive data object mapping system, as previously described (e.g. with reference to<figref>7a</figref> und<figref>7B)</figref>, can be implemented in server 830. For example, the server 830 may assemble map layers and tiles and send those map tiles to the computer system 800.
0156The computer system 800, on the other hand, may implement the client-side components of the card system, as previously described (e.g., reference<figref>6a</figref> und<figref>6b)</figref>. For example, the computer system may receive map tiles and/or other code that may be executed by processor 804 unchanged as received and/or stored in storage device 810 or other non-volatile memory for later execution. The computer system 800 may further assemble the map interface from the map tiles, display the map interface to the user, generate object contours or other functionality, and/or accept input from the user.
0157In one embodiment, the mapping system may be accessed by the user using a web-based viewer, such as a web browser. In this embodiment, the map interface may be generated by the server 830 and/or the computer system 800 and transmitted to the user's web browser. The user can then interact with the map interface using the web browser. In one embodiment, the computer system 800 may include a mobile electronic device, such as a cell phone, a smartphone, and/or a tablet computer. The card system may be accessed by the user using such mobile electronic device, among other types of electronic devices.
0158Any of the processes, methods, and algorithms described in the preceding sections may be embodied in and automated in whole or in part by code modules, which code modules are executed by one or more computer systems or computer processors that include computer hardware. The processes and algorithms can be partially or completely implemented in application-specific circuits.
0159The various features and processes described above can be used independently, or can be combined in various ways. All possible combinations and subcombinations are intended to be within the scope of this disclosure. Additionally, certain procedures or process blocks may be omitted in some implementations. The methods and processes described herein are also not limited to any particular sequence, and the related blocks or states may be performed in other suitable sequences. For example, the blocks or states described may be performed in an order other than that specifically disclosed, or multiple blocks or states may be combined into a single block or state. The example blocks or states may be implemented in serial, in parallel, or in any other manner. Blocks or states may be added to or removed from the disclosed example embodiments. The example systems and components described herein may be performed in ways other than those described. For example, compared to the disclosed exemplary embodiments, elements may be added, removed, or rearranged.
0160Language expressing a reservation, such as, but not limited to, “may,” “could,” “could possibly,” or “may possibly,” is intended, unless specifically stated otherwise or otherwise understood in the context used, to generally convey that certain embodiments include certain features, elements, and/or steps, while other embodiments do not. Therefore, such language containing a caveat is not intended to generally imply that features, elements, and/or steps are in any way required for one or more embodiments, or that one or more embodiments necessarily include logic to, with or without, an input or an Prompt the user to decide whether these features, elements and/or steps are included or are to be performed in any specific embodiment.
0161Any process descriptions, elements or blocks in the flowcharts described herein and/or illustrated in the accompanying drawings should be understood to potentially represent modules, segments or sections of code that implement one or more executable instructions of specific logical functions or steps in the process. Alternative implementations are included within the scope of the embodiments described herein, wherein elements or functions may be removed and executed in a different order than that shown or discussed, including substantially simultaneously or in reverse order, depending on the accompanying functionality, such as is clear to experts.
0162It should be emphasized that many variations and modifications can be made to the previously described embodiments, the elements of which are to be understood as existing among other suitable examples. The foregoing description describes in detail certain embodiments of the invention. It should be understood, however, that regardless of how detailed the invention has been described in the foregoing text, it can be embodied in many ways. As also stated previously, it should be noted that the use of specific terminology in describing certain features or aspects of the invention should not be construed as implying that the terminology is being redefined so as to be limited to any to contain specific characteristics of the features or aspects of the invention with which such terminology is associated.
Contents2
36 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21 Sheet 22 Sheet 23 Sheet 24 Sheet 25 Sheet 26 Sheet 27 Sheet 28 Sheet 29 Sheet 30 Sheet 31 Sheet 32 Sheet 33 Sheet 34 Sheet 35 Sheet 36
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2009132953A1 | Cites | United States of America | Applicant |
| US2009132953A1 | Cites | United States of America | Search report |
| US2009160859A1 | Cites | United States of America | Search report |
| US2010197318A1 | Cites | United States of America | Applicant |
| US2010197318A1 | Cites | United States of America | Search report |
| US2011208724A1 | Cites | United States of America | Search report |
| US8280880B1 | Cites | United States of America | Search report |
| US8280880B1 | Cites | United States of America | Applicant |
| US20090132953A1 | Cites | United States of America | – |
| US20090160859A1 | Cites | United States of America | – |
| US20100197318A1 | Cites | United States of America | – |
| US20110208724A1 | Cites | United States of America | – |
27 members in 7 offices
Members27
| Document | Office | Kind | |
|---|---|---|---|
| GB201408025D0 | United Kingdom | D0 | |
| US8799799B1 | United States of America | B1 | |
| NZ624557A | New Zealand | A | |
| CA2851096A1 | Canada | A1 | |
| NL2012778A | Netherlands (Kingdom of the) | A | |
| US2014333651A1 | United States of America | A1 | |
| US2014337772A1 | United States of America | A1 | |
| AU2014202442A1 | Australia | A1 | |
| DE102014208515A1 | Germany | A1 | |
| GB2516155A | United Kingdom | A | |
| NL2012778B1 | Netherlands (Kingdom of the) | B1 | |
| GB201620827D0 | United Kingdom | D0 | |
| GB2516155B | United Kingdom | B | |
| GB2542517A | United Kingdom | A | |
| GB2542517B | United Kingdom | B | |
| US9953445B2 | United States of America | B2 | |
| US10360705B2 | United States of America | B2 | |
| US2019371026A1 | United States of America | A1 | |
| US10783686B2 | United States of America | B2 | |
| US2021005001A1 | United States of America | A1 | |
| US11295498B2 | United States of America | B2 | |
| US2022222879A1 | United States of America | A1 | |
| US11830116B2 | United States of America | B2 | |
| US2024203007A1 | United States of America | A1 | |
| DE102014208515B4This record | Germany | B4 | |
| US12374011B2 | United States of America | B2 | |
| US2025329089A1 | United States of America | A1 |
7 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Patent grant now finalGrantedR020 | R020 | |
| Change of applicant/patenteeR081 | R081 | |
| Divisional application toR130 | R130 | |
| Grant decision by examination section/examining divisionR018 | R018 | |
| Change of representativeR082 | R082 | |
| Response to examination communicationR016 | R016 | |
| Request for examination validly filedR012 | R012 |
Numbers
- Publication
- 102014208515
- Application
- 10208515
Titles2
- German
- Interaktive georäumliche Karte
- English
- Interactive geospatial map
Classification
- CPC, 6
- G09B29/106
- G06F16/29
- G06T11/65
- G06F3/0481
- G06T11/10
- G06F3/04842
- IPC, 3
- G09B29 10
- G06F16 00
- G06F3 048