Modifying style layer properties of a digital map
Summary by NHIP
Map Style Layer Editing
The method edits digital map properties by maintaining a style sheet with multiple layers corresponding to specific data layers. Upon selecting a style layer group, the system displays and updates a group property list for all layers within that group.
Claim Score by NHIP
Abstract
A process, and corresponding system for performing the process, is described for editing and representing property values for a digital map. The process retrieves electronic map data from a style sheet corresponding to a vector map tile set for a digital map and displays map layer styles in a property editor panel, where each map style layer references a portion of the data and one or more visual style rules to apply to the portion. The process also displays a visual map with the map layer styles applied. Upon receiving selection of one or more map style layers from the plurality of map style layers, the process displays style layer properties and values corresponding to each. The process renders in the visual map only the selected one or more style layers marked as visible. As edits are made in the property editor panel, the visual map is updated to reflect the changes.

Term
10.9 yearsleft in the term
Expires 18 August 2037.
- Priority and filed
- Granted
- Today
- Expires
20 claims: 3 independent, 17 dependent
- 1Broadest claimClaim Score 20, narrow(NHIP)A method of editing and representing property values for a digital map, comprising:maintaining a style sheet for a digital map, wherein: the style sheet comprises a plurality of style layers, each style layer corresponding to a data layer of a set of data layers and each data layer including a subset of electronic map data representing map features of a particular type, and the plurality of style layers comprise a plurality of style layer properties defining visual representations within the digital map of map features within the respective data layer;displaying a user interface, the user interface comprising: a visual map representing the electronic map data according to the style sheet, wherein each data layer of a plurality of data layers is represented according to the respective style layer in the style sheet;and a map style layer list comprising a list of style layers from the style sheet, wherein the map style layer list includes a style layer group comprising a plurality of style layers;receiving a selection of the style layer group;adjusting the user interface to display a group map style layer property list comprising: a list of style layer properties of the selected style layer group;and for each style layer property in the list of style layer properties, a style layer property value;receiving an updated value for a particular style layer property in the list of style layer properties of the group map style layer property list;and updating, for each style layer in the style layer group, the particular style layer property to the updated value.
- 8A non-transitory computer-readable storage medium storing computer program instructions executable by a processor to perform steps for editing and representing property values for a digital map, the steps comprising:maintaining a style sheet for a digital map, wherein: the style sheet comprises a plurality of style layers, each style layer corresponding to a data layer of a set of data layers and each data layer including a subset of electronic map data representing map features of a particular type, and the plurality of style layers comprise a plurality of style layer properties defining visual representations within the digital map of map features within the respective data layer;displaying a user interface, the user interface comprising: a visual map representing the electronic map data according to the style sheet, wherein each data layer of a plurality of data layers is represented according to the respective style layer in the style sheet;and a map style layer list comprising a list of style layers from the style sheet, wherein the map style layer list includes a style layer group comprising a plurality of style layers;receiving a selection of the style layer group;adjusting the user interface to display a group map style layer property list comprising: a list of style layer properties of the selected style layer group;and for each style layer property in the list of style layer properties, a style layer property value;receiving an updated value for a particular style layer property in the list of style layer properties of the group map style layer property list;and updating, for each style layer in the style layer group, the particular style layer property to the updated value.
- 15A system comprising:one or more processors;and a non-transitory computer-readable storage medium storing computer program instructions executable by the one or more processors to perform steps for editing and representing property values for a digital map, the steps comprising: maintaining a style sheet for a digital map, wherein: the style sheet comprises a plurality of style layers, each style layer corresponding to a data layer of a set of data layers and each data layer including a subset of electronic map data representing map features of a particular type, and the plurality of style layers comprise a plurality of style layer properties defining visual representations within the digital map of map features within the respective data layer;displaying a user interface, the user interface comprising: a visual map representing the electronic map data according to the style sheet, wherein each data layer of a plurality of data layers is represented according to the respective style layer in the style sheet;and a map style layer list comprising a list of style layers from the style sheet, wherein the map style layer list includes a style layer group comprising a plurality of style layers;receiving a selection of the style layer group;adjusting the user interface to display a group map style layer property list comprising: a list of style layer properties of the selected style layer group;and for each style layer property in the list of style layer properties, a style layer property value;receiving an updated value for a particular style layer property in the list of style layer properties of the group map style layer property list;and updating, for each style layer in the style layer group, the particular style layer property to the updated value.
Independent claims3
102 paragraphs in 5 sections, as filed
BENEFIT CLAIM
0001This application is a continuation of application Ser. No. 15/681,288, filed Aug. 18, 2017, which claims the benefit under 35 U.S.C. § 119(e) of provisional application 62/376,868, filed Aug. 18, 2016, the entire contents of which are hereby incorporated by reference for all purposes as if fully set forth herein. This application also is related to non-provisional applications: Ser. No. 15/681,286, entitled “Providing Visual Selection of Map Data in a Digital Map,” Ser. No. 15/681,284, entitled “Representation of Digital Map Styling Properties Across Zoom Levels,” and Ser. No. 15/681,290, entitled “Providing Graphical Indication of Label Boundaries in Digital Maps,” each of which were filed on Aug. 18, 2017, and the entire contents of each is hereby incorporated by reference as if fully set forth herein.
BACKGROUND
0002The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
0003While digital maps and graphical user interfaces for digital maps have entered wide use, creating such maps and interfaces is difficult using pre-existing software tools. Editing and authoring programs for creating digital map templates, colors, and features has been complex and required many manual operations. In particular, processes for customizing digital maps, or preparing digital maps in a manner that can adapt to other applications that use the maps, has been difficult or inconvenient. Therefore, there is a need for more flexible, comprehensive and convenient computer-based techniques for creating, modifying and manipulating digital maps and graphical user interfaces for digital computer display devices that display maps.
SUMMARY
0004As described herein, electronic map data is divided into a plurality of vector map tiles at a plurality of zoom levels, wherein each map tile corresponds to a portion of a geographic map. The map tiles are rendered when requested by a client, and each map tile is rendered based on one or more map styles, which defines the visual appearance of an electronic map, such as what map data to display in the electronic map, what order to render the data in, and how to style the data when it is rendered.
0005A map style comprises one or more map style layers, each of which may include a reference to a portion of electronic map data and one or more visual style rules to be applied to the portion of electronic map data. Map editing instructions are programmed or configured to cause display, in a graphical user interface of a computer display device and in association with a digital map, of one or more style layer properties of the digital map.
0006A process, and corresponding system for performing the process, is described herein for editing and representing property values for a digital map. The process retrieves electronic map data from a style sheet corresponding to a vector map tile set for a digital map and displays map layer styles in a property editor panel, where each map style layer references a portion of the electronic map data and one or more visual style rules to apply to the portion. The process also displays a visual map with the map layer styles applied. Upon receiving selection of one or more map style layers from the plurality of map style layers, the process displays style layer properties and values corresponding to each. The process renders in the visual map only the one or more selected style layers marked as visible. As edits are made in the property editor panel, the visual map is updated to reflect the changes.
BRIEF DESCRIPTION OF THE DRAWINGS
0007In the drawings:
0008<figref idref="DRAWINGS">FIG. 1A</figref> illustrates an example computer system in which the techniques described herein may be practiced, according to an embodiment.
0009<figref idref="DRAWINGS">FIG. 1B</figref> illustrates a computer system upon which an embodiment may be implemented.
0010<figref idref="DRAWINGS">FIG. 2</figref> illustrates a map style editor according to an embodiment.
0011<figref idref="DRAWINGS">FIG. 3</figref> illustrates a map style layer property list of a map style editor, according to an embodiment.
0012<figref idref="DRAWINGS">FIG. 4</figref> illustrates a map style editor after receiving a property value from a user.
0013<figref idref="DRAWINGS">FIG. 5</figref> illustrates a existing property value selection editor of a map style editor, according to an embodiment.
0014<figref idref="DRAWINGS">FIG. 6</figref> illustrates a property types selection panel of a map style editor, according to an embodiment.
0015<figref idref="DRAWINGS">FIG. 7</figref> illustrates a map style property list grouped by property value.
0016<figref idref="DRAWINGS">FIG. 8</figref> illustrates a map style property list grouped by property.
0017<figref idref="DRAWINGS">FIG. 9</figref> illustrates a flowchart of a process for editing and representing property values for a digital map, according to an embodiment.
DETAILED DESCRIPTION
0018In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention.
0019The text of this disclosure, in combination with the drawing figures, is intended to state in prose the algorithms that are necessary to program a computer to implement the claimed inventions, at the same level of detail that is used by people of skill in the arts to which this disclosure pertains to communicate with one another concerning functions to be programmed, inputs, transformations, outputs and other aspects of programming. That is, the level of detail set forth in this disclosure is the same level of detail that persons of skill in the art normally use to communicate with one another to express algorithms to be programmed or the structure and function of programs to implement the inventions claimed herein.
System Overview
0020<figref idref="DRAWINGS">FIG. 1A</figref> illustrates an example computer system in which the techniques described may be practiced, according to one embodiment.
0021In an embodiment, a computer system <b>100</b> comprises a plurality of components that may be implemented at least partially by hardware at one or more computing devices, such as one or more hardware processors executing stored program instructions stored in one or more memories for performing the functions that are described herein. In other words, in an embodiment, all functions described herein are intended to indicate operations that are performed using programming in a special-purpose computer or general-purpose computer, in various embodiments. <figref idref="DRAWINGS">FIG. 1A</figref> illustrates only one of many possible arrangements of components configured to execute the programming described herein. Other arrangements may include fewer or different components, and the division of work between the components may vary depending on the arrangement.
0022<figref idref="DRAWINGS">FIG. 1A</figref> illustrates a client computing device <b>145</b> that is coupled via a network connection <b>165</b> to a server computer <b>105</b>, which is coupled to a database <b>120</b>. The server computer comprises a mapping application <b>110</b>, an application programming interface (API) <b>112</b>, map editing instructions <b>115</b>, and a database interface <b>117</b>. The database <b>120</b> comprises electronic map source data <b>125</b>, electronic map data <b>130</b>, and map style data <b>140</b>. The client computing device <b>145</b> comprises a client map application <b>150</b>, browser <b>155</b>, and wireless network interface <b>159</b>.
0023In one embodiment, client computing device <b>145</b> is any computing device, such as a work station, personal computer, general purpose computer, laptop, hand-held computer, wearable computer, cellular or mobile phone, portable digital assistant (PDA), tablet computer, and the like. Although a single client computing device is depicted in <figref idref="DRAWINGS">FIG. 1A</figref>, any number of client computing devices may be present. Each client computing device <b>145</b> is communicatively connected to server computer <b>105</b> through network connection <b>165</b> which comprises any combination of a LAN, a WAN, one or more internetworks such as the public Internet, a cellular network, or a company network.
0024Client computing device <b>145</b> also includes network interface <b>159</b>, which is used by the client computing device <b>145</b> to communicate with other devices. In particular, network interface <b>159</b> is used to establish network connection <b>165</b> to server computer <b>105</b>. Network interface <b>159</b> may use Ethernet, WiFi, WiMAX, Bluetooth, ZigBee, cellular standards, or others.
0025Client computing device <b>145</b> also includes other hardware elements, such as one or more input devices, memory, processors, and the like, which are not depicted in <figref idref="DRAWINGS">FIG. 1A</figref>. Client computing device <b>145</b> also includes applications, software, and other executable instructions to facilitate various aspects of embodiments described herein. These applications, software, and other executable instructions may be installed by a user, owner, manufacturer, or other entity related to the client computing device.
0026In one embodiment, client computing device <b>145</b> includes client map application <b>155</b> which is software that displays, uses, supports, or otherwise provides electronic mapping functionality as part of the application or software. Client map application <b>155</b> may be any type of application, such as a taxi service, a video game, a chat client, a food delivery application, etc. In an embodiment, client map application <b>155</b> obtains electronic mapping functions through SDK <b>157</b>, which may implement functional calls, callbacks, methods, or other programmatic means for contacting the server computer to obtain digital map tiles, layer data, or other data that can form the basis of visually rendering a map as part of the application. In general, SDK <b>157</b> is a software development kit that allows developers to implement electronic mapping without having to design all of the components from scratch. For example, SDK <b>157</b> may be downloaded from the Internet by developers, and subsequently incorporated into an application which is later used by individual users.
0027In one embodiment, client computing device <b>145</b> includes browser <b>155</b>. Browser <b>155</b> is a computer application that may request and execute instructions received from web servers to generate complex user interfaces that are presented to a user through one or more devices, such as a display or speakers. In response to input from a user, such as a mouse click indicating that the user selected an object defined in the instructions, such as a button or a text box, a browser may send a request based on the selected object to the web server. The request may be a request for data or include data to be processed by the web server. In an embodiment, browser <b>155</b> may receive instructions from server computer <b>105</b> to generate a user interface of a map editing program through which a user may create and modify map styles. Additionally or alternatively, client computing device <b>145</b> may include a map editing application or software that provides map editing functions as part of the application or software.
0028Server computer <b>105</b> may be any computing device, including but not limited to: servers, racks, work stations, personal computers, general purpose computers, laptops, Internet appliances, wireless devices, wired devices, multi-processor systems, mini-computers, and the like. Although <figref idref="DRAWINGS">FIG. 1A</figref> shows a single element, the server computer <b>105</b> broadly represents one or more multiple server computers, such as a server cluster, and the server computer <b>105</b> may be located in one or more physical locations. Server computer <b>105</b> may also represent one or more virtual computing instances that execute using one or more computers in a datacenter such as a virtual server farm.
0029Server computer <b>105</b> is communicatively connected to database <b>120</b> and client computer device <b>145</b> through any kind of computer network using any combination of wired and wireless communication, including, but not limited to: a Local Area Network (LAN), a Wide Area Network (WAN), one or more internetworks such as the public Internet, or a company network. Server computer <b>105</b> may host or execute mapping application <b>110</b>, and may include other applications, software, and other executable instructions, such as database interface <b>117</b>, to facilitate various aspects of embodiments described herein.
0030In one embodiment, database interface <b>117</b> is a programmatic interface such as JDBC or ODBC for communicating with database <b>120</b>. Database interface <b>117</b> may communicate with any number of databases and any type of database, in any format. Database interface <b>117</b> may be a piece of customer software created by an entity associated with mapping application <b>110</b>, or may be created by a third party entity in part or in whole.
0031In one embodiment, database <b>120</b> is a data storage subsystem consisting of programs and data that is stored on any suitable storage device such as one or more hard disk drives, memories, or any other electronic digital data recording device configured to store data. Although database <b>120</b> is depicted as a single device in <figref idref="DRAWINGS">FIG. 1A</figref>, database <b>120</b> may span multiple devices located in one or more physical locations. For example, database <b>120</b> may include one or nodes located at a data warehouse(s). Additionally, in one embodiment, database <b>120</b> may be located on the same device(s) as server computer <b>105</b>. Alternatively, database <b>120</b> may be located on a separate device(s) from server computer <b>105</b>.
0032Database <b>120</b> may be in any format, such as a relational database, a noSQL database, or any other format. Database <b>120</b> is communicatively connected with server computer <b>105</b> through any kind of computer network using any combination of wired and wireless communication of the type previously described. Optionally, database <b>120</b> may be communicatively connected with other components, either directly or indirectly, such as one or more third party data suppliers. Generally, database <b>120</b> stores data related to electronic maps including, but not limited to: electronic map source data <b>125</b>, electronic map data <b>130</b>, map tile filter <b>135</b>, and map style data <b>140</b>. These datasets may be stored as columnar data in a relational database or as flat files.
0033In one embodiment, electronic map source data <b>125</b> is raw digital map data that is obtained, downloaded, or received from a variety of sources. The raw digital map data may include satellite images, digital street data, building or place data, or terrain data. Example sources include National Aeronautics and Space Administration (NASA), United States Geological Survey (USGS), and DigitalGlobe. Raw digital map data may also be defined by a user and uploaded to the server computer. Electronic map source data <b>125</b> may be updated at any suitable interval, and may be stored for any amount of time. Once obtained or received, electronic map source data <b>125</b> is used to generate electronic map data <b>130</b>.
0034In one embodiment, electronic map data <b>130</b> is digital map data that is provided, either directly or indirectly, to client map applications, such as client map application <b>155</b>, using an API. Electronic map data <b>130</b> is based on electronic map source data <b>125</b>. Specifically, electronic map source data <b>125</b> is processed and organized as a plurality of vector map tiles which may be subject to map style data to impose different display styles. Electronic map data <b>130</b> may be updated at any suitable interval, and may include additional information beyond that derived from electronic map source data <b>125</b>.
0035In an embodiment, electronic map data is divided into a plurality of vector map tiles at a plurality of zoom levels, wherein each map tile corresponds to a portion of a geographic map. For example, a map tile may correspond to a square area of a geographic map at a particular zoom level, or an area of a pre-defined size and location within a geographic map. In an embodiment, the portion of electronic map data within each map tile may be organized in a compact, structured format, such as the Mapbox Vector Tile Specification format, by Mapbox, Inc., San Francisco, Calif. Additionally or alternatively, electronic map data <b>130</b> may comprise a plurality of map tile sets. A first set of map tiles may include electronic map data derived from a first set of electronic map source data, while a second set of map tiles may include electronic map data derived from a second set of electronic map source data.
0036In an embodiment, a map tile contains data describing map geometries, such as points, lines, and polygons, of features on the map. Additionally or alternatively, the map tile contains metadata, such as road names, place names, house numbers, feature types, and other properties. For example, electronic map data in a vector map tile corresponding to a portion of a geographic map may include geometry data representing roads, buildings, water, parks, and etc. to be depicted within the portion of the geographic map, as well as geometries for suggested placement of labels and other cartographic features. The map tile may also include metadata corresponding to each feature, such as names that can be rendered as labels on a digital map. Additionally or alternatively, the metadata includes data indicating the portion of the geographic map that the map tile corresponds to. For example, the metadata may include data indicating one or more coordinates of the map tile or one or more boundaries of the map tile. Additionally or alternatively, the metadata includes data indicating the zoom level at which that map tile is to be displayed.
0037In an embodiment, electronic map data is further organized into a plurality of data layers. Electronic map data may describe a plurality of map features, such as buildings, water, roads, etc. The map features may be grouped into the plurality of data layers. For example, a “Road” data layer may include map features such as streets, bridges, freeways, paths, and etc. As another example, a “Water” data layer may include map features such as rivers, lakes, oceans, canals, and etc.
0038In an embodiment, map tiles are used by program libraries and SDKs, such as SDK <b>157</b>, as part of displaying maps on a mobile computing device or a browser. A map application or a browser may request one or more map tiles and process the map tiles to cause display of a visual map.
0039In an embodiment, map tiles are rendered when requested by a client, like a web browser or a mobile application. Rendering may be performed by a rendering library of a client map application or on a server computer. Example rendering libraries include, but are not limited to, Mapbox GL JS, available from Mapbox, Inc., San Francisco, Calif., the Mapbox iOS SDK, Mapbox Android SDK, the Mapbox GL native renderer, or through a Mapbox API.
0040In an embodiment, a map tile is rendered based on a map style. Each map style of a plurality of map styles can be used to render the same map tile. In other words, the same portion of electronic map data may be displayed in a variety of visual styles. For example, in one map application, map tiles may be displayed with dark colors while in a second map application, map tiles may be displayed with light colors. Additionally or alternatively, the electronic map data required may differ based on map style. For example, in one map application, roads within a map tile may be displayed while buildings are not displayed. In another map application, landscape and rivers may be displayed while roads are not displayed.
0041In one embodiment, map style data <b>140</b> is digital data that defines one or more visual map styles for electronic maps. May style data <b>140</b> may comprise a plurality of map styles. A map style defines the visual appearance of an electronic map, such as what map data to display in the electronic map, what order to render the data in, and how to style the data when it is rendered. In an embodiment, a map style may include information including, but not limited to, references to portions of electronic map data <b>130</b>, map images, fonts, and rules specifying how the portions of electronic map data <b>130</b> should be styled when rendering a digital map, such as colors, line styles, line thickness, and etc.
0042In an embodiment, each map style may be stored as a document. For example, a map style may be stored as a JSON object that adheres to a particular style format specification. A map style may be generated using a map editing program or written independently and uploaded to a server computer.
0043In an embodiment, a map style comprises one or more map style layers. Each map style layer may include a reference to a portion of electronic map data and one or more visual style rules to be applied to the portion of electronic map data. In an embodiment, the reference to the portion of electronic map data specifies a particular map data source for the maps style layer. For example, the map style may specify a particular map tile set from a plurality of map tile sets as the map data source for the style layer. Additionally or alternatively, the map style layer may specify a particular data layer within the map tile set to associate with the style layer. For example, a style layer may specify visual style rules for a “Water” data layer of a set of map tiles.
0044In an embodiment, style layer data may include data indicating a style layer type for a map style layer. A map style layer may be a particular map style layer type, such as lines, polygons, symbols, circles, 3D polygons, and images. Additionally or alternatively, the style layer data may specify property values for one or more style layer properties associated with the style layer type. The style layer data may include data indicating property values to associate with each style layer property. In an embodiment, a property value may be a static value. Additionally or alternatively, the property value may be a dynamic value. For example, the property value may be a zoom level dependent value, such as a function that outputs a property value based on an input zoom level.
0045Each style layer type has a set of properties for which values may be specified. For example, a line style layer type may include style layer properties such as line width, line color, line style (solid, dotted, dashed), line cap style, line positioning, etc. As another example, a polygon style layer type may include style layer properties such as fill color, fill pattern, opacity, anti-aliasing, fill outline color, polygon positioning, etc.
0046In an embodiment, mapping application <b>110</b> provides the API <b>112</b> that may be accessed, for example, by client map application <b>155</b> using SDK <b>157</b> to provide electronic mapping to client map application <b>155</b>. Specifically, mapping application <b>110</b> comprises program instructions that are programmed or configured to perform a variety of backend functions needed for electronic mapping including, but not limited to: receiving map tile requests from client computing devices, sending electronic map data to client computing devices, receiving map style data <b>140</b> from map editing applications, receiving electronic map source data <b>125</b> from data providers, processing electronic map source data <b>125</b> to generate electronic map data <b>130</b>, and any other aspects of embodiments described herein. Mapping application <b>110</b> includes map editing instructions <b>115</b> which are programmed or configured to receive and store modified map style data. Additionally or alternatively, map editing instructions <b>115</b> may include instructions to perform the process as detailed in <figref idref="DRAWINGS">FIG. 9</figref>.
0047In one embodiment, map editing instructions <b>115</b> are programmed or configured to cause display, in a graphical user interface of a computer display device and in association with a digital map, one or more style layer properties of the digital map, wherein each style layer comprises a plurality of style layer properties. Map editing instructions <b>115</b> may be further programmed or configured to receive input specifying a particular style layer of the one or more style layers and display style layer properties of the particular style layer. Map editing instructions <b>115</b> may be further programmed or configured to receive input specifying an updated property value for a particular style layer property, assign the updated property value to the particular style layer property, and store an updated map style in map style data <b>140</b> that includes the updated property value.
0048Additionally or alternatively, map editing instructions <b>115</b> may include instructions to cause re-display of the digital map in the graphical user interface based on the updated property value for the particular style layer property.
0049Additionally or alternatively, map editing instructions <b>115</b> may include instructions to receive input specifying a property type and cause display of one or more style layer properties of the specified property type.
0050In an embodiment, map editing instructions <b>115</b> may include instructions for causing display of a graphical user interface of a map editing program at client computing devices. Map editing instructions <b>115</b> may generate and send instructions to browser <b>155</b> to generate the graphical user interface. Additionally or alternatively, map editing instructions <b>115</b> may provide data to a map editing application or other software that provides map editing functions as part of the application or software. For example, map editing instructions may send map style data to a map editing application, receive new or updated map style data, and store received map style data to map style data <b>140</b>.
0051A map editing program may be used to design a map to a user's specifications by allowing a user to select or upload map data, add custom fonts and images, or define and edit map styles, among other features. In an embodiment, a map editing program includes a map style editor creating custom map styles to a user's specifications. The map style editor may include a graphical user interface through which a user can define a custom map style or edit existing map styles.
0052Additionally or alternatively, the map style editor may include a visual map. The visual map may be displayed in conjunction with one or more map style layer properties. In an embodiment, the visual map is rendered based on the map style being edited in the map style editor. As changes are made to style layer properties, the visual map may be updated to reflect the changes. For example, if a user specifies a new width property value for roads, the map style editor may automatically re-display the visual map and render any roads shown within the map area using the new width property value.
0053According to one embodiment, the techniques described herein are implemented by one or more special-purpose computing devices. For example, the server computer <b>105</b> and client computing device <b>145</b> may be computer devices configured as special-purpose computing devices. The special-purpose computing devices may be hard-wired to perform the techniques, or may include digital electronic devices such as one or more application-specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs) that are persistently programmed to perform the techniques, or may include one or more general purpose hardware processors programmed to perform the techniques pursuant to program instructions in firmware, memory, other storage, or a combination. Such special-purpose computing devices may also combine custom hard-wired logic, ASICs, or FPGAs with custom programming to accomplish the techniques. The special-purpose computing devices may be desktop computer systems, portable computer systems, handheld devices, networking devices or any other device that incorporates hard-wired and program logic to implement the techniques.
0054For example, <figref idref="DRAWINGS">FIG. 1B</figref> is a block diagram that illustrates a computer system <b>160</b> upon which an embodiment of the invention may be implemented. Computer system <b>160</b> includes a bus <b>170</b> or other communication mechanism for communicating information, and a hardware processor <b>172</b> coupled with bus <b>170</b> for processing information. Hardware processor <b>172</b> may be, for example, a general purpose microprocessor.
0055Computer system <b>160</b> also includes a main memory <b>174</b>, such as a random access memory (RAM) or other dynamic storage device, coupled to bus <b>170</b> for storing information and instructions to be executed by processor <b>172</b>. Main memory <b>174</b> also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor <b>172</b>. Such instructions, when stored in non-transitory storage media accessible to processor <b>172</b>, render computer system <b>160</b> into a special-purpose machine that is customized to perform the operations specified in the instructions.
0056Computer system <b>160</b> further includes a read only memory (ROM) <b>176</b> or other static storage device coupled to bus <b>170</b> for storing static information and instructions for processor <b>172</b>. A storage device <b>178</b>, such as a magnetic disk, optical disk, or solid-state drive is provided and coupled to bus <b>170</b> for storing information and instructions.
0057Computer system <b>160</b> may be coupled via bus <b>170</b> to a display <b>180</b>, such as a cathode ray tube (CRT), LCD screen, LED screen, or touch screen, for displaying information to a computer user. An input device <b>182</b>, which may include alphanumeric and other keys, buttons, a mouse, a touchscreen, or other input elements, is coupled to bus <b>170</b> for communicating information and command selections to processor <b>172</b>. In some embodiments, the computer system <b>160</b> may also include a cursor control <b>184</b>, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor <b>172</b> and for controlling cursor movement on display <b>180</b>. The cursor control <b>184</b> typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.
0058Computer system <b>160</b> may implement the techniques described herein using customized hard-wired logic, one or more ASICs or FPGAs, firmware and/or program logic which in combination with the computer system causes or programs computer system <b>160</b> to be a special-purpose machine. According to one embodiment, the techniques herein are performed by computer system <b>160</b> in response to processor <b>172</b> executing one or more sequences of one or more instructions contained in main memory <b>174</b>. Such instructions may be read into main memory <b>174</b> from another storage medium, such as storage device <b>178</b>. Execution of the sequences of instructions contained in main memory <b>174</b> causes processor <b>172</b> to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions.
0059The term “storage media” as used herein refers to any non-transitory media that store data and/or instructions that cause a machine to operate in a specific fashion. Such storage media may comprise non-volatile media and/or volatile media. Non-volatile media includes, for example, optical disks, magnetic disks, or solid-state drives, such as storage device <b>178</b>. Volatile media includes dynamic memory, such as main memory <b>174</b>. Common forms of storage media include, for example, a floppy disk, a flexible disk, hard disk, solid-state drive, magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip or cartridge.
0060Storage media is distinct from but may be used in conjunction with transmission media. Transmission media participates in transferring information between storage media. For example, transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus <b>170</b>. Transmission media can also take the form of acoustic, radio, or light waves, such as those generated during radio-wave and infra-red data communications, such as WI-FI, 3G, 4G, BLUETOOTH, or wireless communications following any other wireless networking standard.
0061Various forms of media may be involved in carrying one or more sequences of one or more instructions to processor <b>172</b> for execution. For example, the instructions may initially be carried 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 local to computer system <b>160</b> can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal. An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus <b>170</b>. Bus <b>170</b> carries the data to main memory <b>174</b>, from which processor <b>172</b> retrieves and executes the instructions. The instructions received by main memory <b>174</b> may optionally be stored on storage device <b>178</b> either before or after execution by processor <b>172</b>.
0062Computer system <b>160</b> also includes a communication interface <b>186</b> coupled to bus <b>170</b>. Communication interface <b>186</b> provides a two-way data communication coupling to a network link <b>188</b> that is connected to a local network <b>190</b>. For example, communication interface <b>186</b> may be an integrated services digital network (ISDN) card, cable modem, satellite modem, or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface <b>186</b> may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface <b>186</b> sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
0063Network link <b>188</b> typically provides data communication through one or more networks to other data devices. For example, network link <b>188</b> may provide a connection through local network <b>190</b> to a host computer <b>192</b> or to data equipment operated by an Internet Service Provider (ISP) <b>194</b>. ISP <b>194</b> in turn provides data communication services through the world wide packet data communication network now commonly referred to as the “Internet” <b>196</b>. Local network <b>190</b> and Internet <b>196</b> both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link <b>188</b> and through communication interface <b>186</b>, which carry the digital data to and from computer system <b>160</b>, are example forms of transmission media.
0064Computer system <b>160</b> can send messages and receive data, including program code, through the network(s), network link <b>188</b> and communication interface <b>186</b>. In the Internet example, a server <b>198</b> might transmit a requested code for an application program through Internet <b>196</b>, ISP <b>194</b>, local network <b>190</b> and communication interface <b>186</b>.
0065The received code may be executed by processor <b>172</b> as it is received, and/or stored in storage device <b>178</b>, or other non-volatile storage for later execution.
0066<figref idref="DRAWINGS">FIG. 2</figref> illustrates an example graphical user interface of a map style editor. The map style editor includes style layer list <b>210</b> and visual map <b>230</b>.
0067In an embodiment, style layer list <b>210</b> displays a list of style layers and style layer groups for the selected map style. Additionally or alternatively, the style layer list <b>210</b> indicates the number of layers within each layer group next to the name of the layer group. In the illustrated example, map style layer list <b>210</b> lists a plurality of style layers and style layer groups for a map style titled “Bright.”
0068Additionally or alternatively, a user can create, sort, group, and delete layers using the map style editor. In the illustrated example, style layer list <b>210</b> includes a toolbar comprising a new layer button, a duplicate layer button <b>202</b>, a group/ungroup layers button <b>204</b>, a show/hide layers button <b>206</b>, and a delete layer button <b>208</b>. The new layer button causes the map style editor to display a dialog for specifying map data styled by the map style layer, such as a source map tile set, style layer filters, and other information for creating a new map style layer. The duplicate layer button <b>202</b> allows a user to copy a style layer or a group of style layers. The group/ungroup layers button <b>204</b> groups multiple selected layers or ungroups a group of style layers. The show/hide layers button <b>206</b> shows or hides one or more selected style layers on the map. The delete layer button <b>208</b> deletes one or more selected style layers from the map style.
0069Visual map <b>230</b> is a visual representation of a particular area of a digital map. In an embodiment, one or more map tiles corresponding to the particular area of the digital map are requested and processed in order to render the visual map. Visual map <b>230</b> may be updated or re-redisplayed as a user pans or zooms the map. Additionally or alternatively, visual map <b>230</b> may be rendered based on the selected map style that is being edited in the map style editor. When changes are made to the map style, the map style editor may update or re-display visual map <b>230</b>. In other words, visual map <b>230</b> may provide a real-time representation of how digital maps will look if rendered using the selected map style.
0070In an embodiment, the map style editor displays a list of style layer properties and property values for one or more style layers. A user may view or modify the property value assigned to one or more style layer properties using the map style editor.
0071In an embodiment, selecting one or more style layers in the style layer list <b>210</b> allows a user to view and edit the properties for the selected layer(s). <figref idref="DRAWINGS">FIG. 3</figref> illustrates an example map style layer property list of the map style editor.
0072In the illustrated example, the “road_street” style layer is selected in style layer list <b>210</b>. Map style layer property list <b>310</b> is displayed in the graphical user interface. Style layer property list <b>310</b> displays style layer properties that are associated with a selected style layer. Additionally or alternatively, style layer property list <b>310</b> displays the property value assigned to each style layer property. In the present example, style layer property list <b>220</b> includes a plurality of style layer properties for the “road_street” style layer, such as the ones indicated by the label style layer properties <b>222</b>.
0073In an embodiment, style layer property list <b>310</b> includes a property editor for one or more style layer properties, such as the style layer property editors <b>314</b> indicated for style layer properties <b>312</b>. In the example illustrated in <figref idref="DRAWINGS">FIG. 3</figref>, the Color, Pattern, and Opacity style layer properties each have a corresponding text field. The text fields indicate the current value of each style layer property. Selecting a property editor may bring up a graphical editor where the user can select a value for the property, such as a color selection panel for the Color property. A user may also edit the property value by typing or pasting text into the text field, or adjust a numerical value using arrow keys. Other properties may have buttons or other types of user interface components that allow a user to select or specify a property value.
0074In an embodiment, if a user modifies a value for a property, visual map <b>230</b> is re-displayed to reflect the updated property value. Additionally or alternatively, the property editor may be updated to display the updated property value. <figref idref="DRAWINGS">FIG. 4</figref> illustrates the visual map of the map style editor after a property value is modified. In <figref idref="DRAWINGS">FIG. 4</figref>, the property value for the “Color” property has been set to “#000” (black). Property editor <b>314</b> displays the updated property value. Additionally, visual map <b>230</b> is updated to display streets in black instead of white.
0075In an embodiment, selecting a property editor may cause the map style editor to display a graphical editor where the user can select an existing property value. An existing property value may include other values assigned to the same style property in other style layers. For example, if a line color property is selected, the map style editor may display a list of line colors used in other style layers. Additionally or alternatively, the map style editor may display a list of values for other properties of a similar value type. For example, selecting a style property with a color property value may cause the map style editor to display a list of all colors used in other style layers of the map, such as other line colors, fill colors, text color, and etc.
0076<figref idref="DRAWINGS">FIG. 5</figref> illustrates an example existing property value selection editor for the map style editor. The “Color” property is selected to display existing value selection editor <b>510</b>. Existing value selection editor <b>510</b> comprises a plurality of property values <b>512</b> and corresponding style layer lists <b>514</b>. Property values <b>512</b> are property values from other map style layers. In the illustrated example, the “Color” property for “road_street” map style layer is selected, so color values used in other map style layers are displayed. Style layer lists <b>514</b> list the style layers that have the particular property value for the color property. Selecting a property value from property values <b>512</b> sets the value for the selected style property.
0077In an embodiment, if a layer group is selected, editing a style layer property sets the property value for every style layer within the style layer group. If style layers within a style layer group have different values for the same style layer property, the map style editor may display a list of the different property values and let the user select a property value to apply to the style layer property for all style layers in the style layer group. In an embodiment, only style layers of the same style layer type—for example, symbols, circles, fills, lines, backgrounds, fill extrusions, raster layers, or other layer types—can be edited together. If a selection includes more than one style layer type, the map style editor may offer a selection of style layer types for a user to select and narrow down to a single type.
0078In an embodiment, the map style editor may display map style layer properties for a plurality of map style layers. The map style layer properties may be grouped by property name. A user may use the list to see what property values are assigned to the same style layer property across a plurality of map style layers. Additionally or alternatively, the map style layer properties may be grouped by property value. A user may use the list to see which style layers have the same value for a map style layer property. The user can easily view and modify similar style layer properties, rather than selecting and modifying each style layer individually.
0079In an embodiment, a property type may be selected in order to view style layer properties of the selected property type. <figref idref="DRAWINGS">FIG. 6</figref> illustrates an example property type selection panel. Property type selection panel <b>610</b> displays a list of property types. In the illustrated example, property types include colors, numbers, images, fonts, text fields, and style layer options. Selecting a property type causes the map style editor to display a list of style layer properties across all style layers of the selected map style that are of the selected property type. For example, if the “colors” property type is selected, then the map style editor may display all style layer properties that have a color value. As another example, selecting the “numbers” property type may display all style layer properties that have a number value.
0080In an embodiment, a style layer property in a style layer property list may be selected to view a list of style layer properties of the same type as the selected style layer property. For example, referring to <figref idref="DRAWINGS">FIG. 3</figref>, the “Color” property in style layer property list <b>310</b> may be selected. The “Color” property may be selected by clicking the property name in the style layer property list <b>310</b> or from a menu. Selecting the “Color” property may cause the map style editor to display a list of style layer properties, from all style layers in the map style, that are also a color property type.
0081In an embodiment, the style layer properties in the properties list may be grouped by property value. The map style editor may display a property value and a list of style layer properties that are assigned the property value. For example, the map style editor may group all style layer properties whose color value is “black,” all style layer properties whose color value is “blue,” and etc. Additionally or alternatively, the style layer properties may be grouped by property value and property name. For example, the map style editor may group all style layer properties that are line colors whose value is “black,” text colors whose value is “black,” fill colors whose value is “black,” and etc. The map style editor may display a property name, a property value, and a list of style layers that have a property with the property name and property value.
0082<figref idref="DRAWINGS">FIG. 7</figref> illustrates an example list of style layer properties grouped by value. In the illustrated example, the “Colors” property type is selected in property type selection panel <b>610</b>. “By Value” property list <b>710</b> displays a list of style layer properties that have a color value. The list of style layer properties is grouped by property value and property name. In the present example, “By Value” property list <b>710</b> comprises a plurality of property value groups, such as the ones indicated by property value group <b>712</b>. “By Value” property list <b>710</b> displays the name of the style layer property and the property value for each property value group. For example, the first property value group <b>712</b> is a “line color” property with a value of “#e9ac77.”
0083In an embodiment, each property value group includes a list of one or more style layers that have the particular style layer property. In <figref idref="DRAWINGS">FIG. 7</figref>, style layer list <b>716</b> is a list of style layers that have a “line color” property with a value of “#e9ac77.”
0084In an embodiment, “By Value” property list <b>710</b> includes a property value editor for one or more property value groups, such as property value editor <b>714</b> for the “line color” property value group. In the illustrated example, property value editor <b>714</b> indicates the current value of the “line color” property value group.
0085Selecting a property editor may bring up a graphical editor where the user can select a value for the property, such as a color selection panel for the Color property. A user may also edit the property value by typing or pasting text into the text field. Other properties may have buttons or other types of user interface components that allow a user to select or specify a property value.
0086In an embodiment, if a user selects or modifies a value for a property value group, the map style editor assigns the property value to each style layer property within the property value group. For example, if the user edits the “line color” property value from “#e9ac77” to “#000000,” each style layer listed in style layer list <b>716</b> will have their line color property value set to “#000000.” In an embodiment, the visual map <b>230</b> is re-displayed to reflect the updated property values. Additionally or alternatively, the property list <b>710</b> may be updated to display the updated property value for the property value group. Additionally or alternatively, if the updated property value is the same as another property value group, the update property list <b>710</b> may combine the two property value groups.
0087In an embodiment, the style layer properties in the property list may be grouped by property name. The map style editor may display a property name and a list of style layers that have a property with the property name. For example, the map style editor may group all style layer properties that are line colors. For each property group, the map style editor may list each style layer that has the style layer property and the respective property value for the style layer property.
0088<figref idref="DRAWINGS">FIG. 8</figref> illustrates an example list of style layer properties grouped by property. In the illustrated example, the “Colors” property type is selected in property type selection panel <b>610</b>. “By Property” property list <b>810</b> displays a list of style layer properties that have a color value. The list of style layer properties is grouped by property name. In the present example, “By Property” property list <b>810</b> comprises a plurality of property groups, such as the one indicated by property group <b>812</b>. “By Property” property list <b>810</b> displays the name of a style layer property and one or more style layers that have the particular style layer property. Additionally or alternatively property list <b>810</b> may display a property value assigned to the style layer property for each style layer. For example, property list <b>810</b> indicates that “admin_level 2 maritime” has a property value of “a0c8f0” for the “line color” property.
0089In an embodiment, “By Property” property list <b>810</b> includes a property value editor for each style layer within a property group, such as property value editor <b>814</b> for the style layer “admin_level_2_maritime.” In the illustrated example, property value editor <b>814</b> indicates the current value of the “line color” property of style layer “admin_level_2_maritime.”
0090Selecting a property editor may bring up a graphical editor where the user can select a value for the property, such as a color selection panel for the Color property. A user may also edit the property value by typing or pasting text into the text field. Other properties may have buttons or other types of user interface components that allow a user to select or specify a property value. In an embodiment, selecting a property value assigns the property value to the style layer property of the corresponding style layer. Other style layers within the property group are not updated.
0091In an embodiment, the visual map <b>230</b> is re-displayed to reflect the updated property values. Additionally or alternatively, the property list <b>810</b> may be updated to display the updated property value for the property value group.
0092In an embodiment, after a map style layer property is edited, an updated map style layer property value may be stored in map style data <b>140</b> in association with the corresponding style layer property. The map style editor may automatically cause updated map style data to be uploaded or saved to database <b>120</b> after any change is made to the map style. Additionally or alternatively, the map style editor may periodically upload or save updated map style data to database <b>120</b>. Additionally or alternatively, the map style editor may store update map style data in memory, and upload or save the stored map style upon a user action, such as clicking a “save” button or closing the map style editor.
0093Referring to <figref idref="DRAWINGS">FIG. 9</figref>, a flowchart is shown of a process <b>900</b> for representing style layer properties at various zoom levels, according to one embodiment. In various embodiments, the operations of the process <b>900</b> of <figref idref="DRAWINGS">FIG. 9</figref> may be implemented in programming by a server computer <b>105</b> or its components as described herein. For example, the operations of process <b>900</b> may be performed by the mapping application <b>110</b> according to map editing instructions <b>115</b> as described with reference to <figref idref="DRAWINGS">FIGS. 1-8</figref>. In some examples, the server computer <b>105</b> may execute a set of instructions or sequence of instructions (e.g., the map editing instructions <b>115</b>) to control the functional elements of server computer <b>105</b> to perform the functions described below. Additionally or alternatively, server computer <b>105</b> may perform aspects of the functions described below using special-purpose hardware. In some embodiments, the map editing instructions <b>115</b> may instruct the server computer to interact with the database <b>120</b> to perform the functions described below using database interface <b>117</b>. The process <b>900</b> steps with dashed outlines represent optional steps. In some embodiments, one or more functions described below may be performed by the client computing device <b>145</b>.
0094Initially, the server computer <b>105</b> executing the mapping application <b>110</b> retrieves <b>910</b> electronic map data from a style sheet corresponding to a vector map tile set for a digital map, and displays <b>920</b> map layer styles in a property editor panel. Each map style layer references a portion of the electronic map data and one or more visual style rules to apply to the portion.
0095The server computer <b>105</b> executing the mapping application <b>110</b> displays <b>930</b> a visual map representing the electronic map data with the map layer styles applied.
0096The server computer <b>105</b> executing the mapping application <b>110</b> receives <b>940</b> selection of one or more map style layers from the map style layers.
0097For example, the server computer <b>105</b> executing the mapping application <b>110</b> may receive in the property editor panel input specifying a property type, and thus display style layer properties of the specified property type. Further, the one or more style layers may be grouped by property name and/or by property value.
0098The server computer <b>105</b> executing the mapping application <b>110</b> displays <b>950</b> style layer properties, and for each style layer property, a value corresponding to the selected one or more styles layers in the property editor panel, and renders <b>960</b> in the visual map only the selected style layers marked as visible.
0099The server computer <b>105</b> executing the mapping application <b>110</b> may receive <b>970</b> in the property editor panel a variety of edits, e.g., to a particular value for a particular style layer property. For example, if the displayed style layer properties are the same property type as the particular style layer property, the property editor panel edits comprise selection of an existing property value from the style layer properties that are the same property type as the particular style layer property. In addition, input specifying a style layer group can be received in the property editor panel and as a result the edit to the particular value for the particular style layer property sets the property value for every style layer in the style layer group. Similarly, input specifying a property value group can be received in the property editor panel and as a result the edit to the particular value for the particular style layer property sets the property value for each style layer property of the property value group.
0100Additionally or alternatively, the map style layers may be grouped by property name, and as a result property values shared by a particular style layer property name across the map style layers are displayed. The map style layers may be grouped by property value, and as a result the map style layers that share a particular map style layer property value are displayed. The map style layers may be grouped by both property name and property value, causing display of the map style layers that share the particular map style layer property name and map style property value.
0101The server computer <b>105</b> executing the mapping application <b>110</b> may store <b>990</b> the edited particular value for the particular style layer property.
Contents5
12 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
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US10444940B2 | Cites | United States of America | Applicant |
| US10444941B2 | Cites | United States of America | Applicant |
| US2002091758A1 | Cites | United States of America | Applicant |
| US2002175948A1 | Cites | United States of America | Applicant |
| US2005231392A1 | Cites | United States of America | Applicant |
| US2007219938A1 | Cites | United States of America | Applicant |
| US2008231643A1 | Cites | United States of America | Applicant |
| US2009015596A1 | Cites | United States of America | Applicant |
| US2011214050A1 | Cites | United States of America | Applicant |
| US2011289077A1 | Cites | United States of America | Applicant |
| US2013124980A1 | Cites | United States of America | Applicant |
| US2013147794A1 | Cites | United States of America | Applicant |
| US2013321450A1 | Cites | United States of America | Search report |
| US2013339891A1 | Cites | United States of America | Applicant |
| US2014340421A1 | Cites | United States of America | Applicant |
| US2014354629A1 | Cites | United States of America | Applicant |
| US2014365935A1 | Cites | United States of America | Applicant |
| US2015170385A1 | Cites | United States of America | Applicant |
| US2015186414A1 | Cites | United States of America | Applicant |
| US2015262399A1 | Cites | United States of America | Applicant |
| US2015310360A1 | Cites | United States of America | Search report |
| US2015310652A1 | Cites | United States of America | Applicant |
| US2016070451A1 | Cites | United States of America | Applicant |
| US2016102983A1 | Cites | United States of America | Applicant |
| US2017039765A1 | Cites | United States of America | Applicant |
| US2017052747A1 | Cites | United States of America | Search report |
| US2017228899A1 | Cites | United States of America | Applicant |
| US2017308549A1 | Cites | United States of America | Applicant |
| US2018189250A1 | Cites | United States of America | Applicant |
| US2019087442A1 | Cites | United States of America | Applicant |
| US8274524B1 | Cites | United States of America | Applicant |
| US8681176B1 | Cites | United States of America | Search report |
| US8937627B1 | Cites | United States of America | Applicant |
| US9111380B2 | Cites | United States of America | Applicant |
| US9563450B1 | Cites | United States of America | Applicant |
| US20020091758A1 | Cites | United States of America | Applicant |
| US20020175948A1 | Cites | United States of America | Applicant |
| US20050231392A1 | Cites | United States of America | Applicant |
| US20070219938A1 | Cites | United States of America | Applicant |
| US20080231643A1 | Cites | United States of America | Applicant |
| US20090015596A1 | Cites | United States of America | Applicant |
| US20110214050A1 | Cites | United States of America | Applicant |
| US20110289077A1 | Cites | United States of America | Applicant |
| US20130124980A1 | Cites | United States of America | Applicant |
| US20130147794A1 | Cites | United States of America | Applicant |
| US20130321450A1 | Cites | United States of America | Search report |
| US20130339891A1 | Cites | United States of America | Applicant |
| US20140340421A1 | Cites | United States of America | Applicant |
| US20140354629A1 | Cites | United States of America | Applicant |
| US20140365935A1 | Cites | United States of America | Applicant |
| US20150170385A1 | Cites | United States of America | Applicant |
| US20150186414A1 | Cites | United States of America | Applicant |
| US20150262399A1 | Cites | United States of America | Applicant |
| US20150310360A1 | Cites | United States of America | Search report |
| US20150310652A1 | Cites | United States of America | Applicant |
| US20160070451A1 | Cites | United States of America | Applicant |
| US20160102983A1 | Cites | United States of America | Applicant |
| US20170039765A1 | Cites | United States of America | Applicant |
| US20170052747A1 | Cites | United States of America | Search report |
| US20170228899A1 | Cites | United States of America | Applicant |
| US20170308549A1 | Cites | United States of America | Applicant |
| US20180189250A1 | Cites | United States of America | Applicant |
| US20190087442A1 | Cites | United States of America | Applicant |
| Amy Lee Walton, “Designing the Blueprint style in Mapbox”, Nov. 5, 2015, Mapbox—maps for developers, pp. 8 (Year: 2015). | Non-patent | – | Search report |
| ArcMap, “Symbolizing Data with ArcMap,” Geography 205 Class Material by T Millett, at <https://www.mtholyoke.edu/courses/tmilletUcourse/geog205/files/Symbolizing_Data. Pdf, Apr. 10, 2016, pp. 133-166. | Non-patent | – | Applicant |
| Avenza Systems, “Using MAP Themes to Automatically style CanVec+ Data on Import in MAPublisher,” posted on Dec. 3, 2014, Retrieved from the internet <URL:https://www.avenza.com/resources/blog/2014/12/03/using-map-themes-to-automaticallystyle-canvec-data-on-import-in-mapublisher/ (Year: 2014)>. | Non-patent | – | Applicant |
| Ekenes, K. “Using Smart Mapping in Custom Web Apps.” Esri.com, ArcGIS Blog, Mar. 28, 2016, 16 pages, [Online] [Retrieved Dec. 19, 2020], Retrieved from the Internet <https://www.esri.com/arcgis-blog/products/mapping/mapping/using-smart-mapping-in-custom-web-apps/>. | Non-patent | – | Applicant |
| Field, K. “Using scale visibility ranges for symbology in ArcGIS Online web maps,” at https://www.esri.com/arcgis-blog/products/arcgis-online/mapping/using-scale-visibility-ranges-for-symbology-in-arcqis-online-web-maps, Dec. 12, 2011, pp. 1-7. | Non-patent | – | Applicant |
| MacWright, T. “Introducing Mapbox Studio,” Mapbox, Nov. 18, 2015, 11 pages. | Non-patent | – | Applicant |
| Oracle. “28: Using Map Components.” Oracle Help Center, Jul. 2015, 65 pages, [Online] [Retrieved Dec. 19, 2020], Retrieved from the Internet Archive <https://web. archive.org/web/2015072603565 7 /https://docs.oracle. com/middleware/1213/adf/develop-faces/dvt-maps.htm>. | Non-patent | – | Applicant |
| Scott, M. “ESRI WebGIS Highlights of What's New and the Road Ahead,” West Virginia GIS Conference, at https://www.esri.com/arcgis-blog/products/arcgis-online/mapping/using-scale-visibility-ranges-for-symbology-in-arcqis-online-web-maDs, May 5, 2016, pp. 1-68. | Non-patent | – | Applicant |
| Sheldon, B., “Ramping Up in Studio,” Mapbox Studio, <<https://blog.mapbox.com/ramping-up-in-studio-7fla934270d1>>, Feb. 4, 2016, 3 pages. | Non-patent | – | Applicant |
| United States Office Action, U.S. Appl. No. 15/681,286, filed May 29, 2020, 29 pages. | Non-patent | – | Applicant |
| United States Office Action, U.S. Appl. No. 15/681,286, filed Nov. 15, 2019, 31 pages. | Non-patent | – | Applicant |
| United States Office Action, U.S. Appl. No. 15/681,286, filed Jul. 11, 2019, 28 pages. | Non-patent | – | Applicant |
| United States Office Action, U.S. Appl. No. 15/681,290, filed May 17, 2018, 14 pages. | Non-patent | – | Applicant |
| United States Office Action, U.S. Appl. No. 15/681,284, filed Jan. 18, 2019, 56 pages. | Non-patent | – | Applicant |
| United States Office Action, U.S. Appl. No. 15/681,286, filed Jan. 11, 2019, 24 pages. | Non-patent | – | Applicant |
| United States Office Action, U.S. Appl. No. 15/681,290, filed Dec. 14, 2018, 14 pages. | Non-patent | – | Applicant |
| United States Office Action, U.S. Appl. No. 16/177,190, filed Jan. 27, 2020, 62 pages. | Non-patent | – | Applicant |
| United States Office Action, U.S. Appl. No. 16/177,190, filed Dec. 24, 2020, 43 pages. | Non-patent | – | Applicant |
| United States Office Action, U.S. Appl. No. 16/177,190, filed Jul. 8, 2020, 31 pages. | Non-patent | – | Applicant |
| United States Office Action, U.S. Appl. No. 16/530,707, filed Oct. 30, 2019, 23 pages. | Non-patent | – | Applicant |
| Walton, A. “Designing the Blueprint style in Mapbox Studio”, Mapbox, Nov. 5, 2015, https://blog.maobox.com/designing-the-blueprint-style-in-mapbox-studio-2e41e0c45141, 8 pages. | Non-patent | – | Applicant |
| United States Office Action, U.S. Appl. No. 15/681,288, filed Oct. 7, 2019, 10 pages. | Non-patent | – | Applicant |
| United States Office Action, U.S. Appl. No. 15/681,288, filed May 13, 2020, 17 pages. | Non-patent | – | Applicant |
| United States Office Action, U.S. Appl. No. 15/681,288, filed Aug. 7, 2020, 16 pages. | Non-patent | – | Applicant |
| United States Office Action, U.S. Appl. No. 16/530,707, filed Feb. 28, 2020, 31 pages. | Non-patent | – | Applicant |
| United States Office Action, U.S. Appl. No. 16/571,045, filed Feb. 3, 2020, 16 pages. | Non-patent | – | Applicant |
| Amy Lee Walton, “Designing the Blueprint style in Mapbox”, Nov. 5, 2015, Mapbox—maps for developers, pp. 8 (Year: 2015). | Non-patent | – | Search report |
| ArcMap, “Symbolizing Data with ArcMap,” Geography 205 Class Material by T Millett, at <https://www.mtholyoke.edu/courses/tmilletUcourse/geog205/files/Symbolizing_Data. Pdf, Apr. 10, 2016, pp. 133-166. | Non-patent | – | Applicant |
| Avenza Systems, “Using MAP Themes to Automatically style CanVec+ Data on Import in MAPublisher,” posted on Dec. 3, 2014, Retrieved from the internet <URL:https://www.avenza.com/resources/blog/2014/12/03/using-map-themes-to-automaticallystyle-canvec-data-on-import-in-mapublisher/ (Year: 2014)>. | Non-patent | – | Applicant |
| Ekenes, K. “Using Smart Mapping in Custom Web Apps.” Esri.com, ArcGIS Blog, Mar. 28, 2016, 16 pages, [Online] [Retrieved Dec. 19, 2020], Retrieved from the Internet <https://www.esri.com/arcgis-blog/products/mapping/mapping/using-smart-mapping-in-custom-web-apps/>. | Non-patent | – | Applicant |
| Field, K. “Using scale visibility ranges for symbology in ArcGIS Online web maps,” at https://www.esri.com/arcgis-blog/products/arcgis-online/mapping/using-scale-visibility-ranges-for-symbology-in-arcqis-online-web-maps, Dec. 12, 2011, pp. 1-7. | Non-patent | – | Applicant |
| MacWright, T. “Introducing Mapbox Studio,” Mapbox, Nov. 18, 2015, 11 pages. | Non-patent | – | Applicant |
| Oracle. “28: Using Map Components.” Oracle Help Center, Jul. 2015, 65 pages, [Online] [Retrieved Dec. 19, 2020], Retrieved from the Internet Archive <https://web. archive.org/web/2015072603565 7 /https://docs.oracle. com/middleware/1213/adf/develop-faces/dvt-maps.htm>. | Non-patent | – | Applicant |
| Scott, M. “ESRI WebGIS Highlights of What's New and the Road Ahead,” West Virginia GIS Conference, at https://www.esri.com/arcgis-blog/products/arcgis-online/mapping/using-scale-visibility-ranges-for-symbology-in-arcqis-online-web-maDs, May 5, 2016, pp. 1-68. | Non-patent | – | Applicant |
| Sheldon, B., “Ramping Up in Studio,” Mapbox Studio, <<https://blog.mapbox.com/ramping-up-in-studio-7fla934270d1>>, Feb. 4, 2016, 3 pages. | Non-patent | – | Applicant |
| United States Office Action, U.S. Appl. No. 15/681,286, filed May 29, 2020, 29 pages. | Non-patent | – | Applicant |
| United States Office Action, U.S. Appl. No. 15/681,286, filed Nov. 15, 2019, 31 pages. | Non-patent | – | Applicant |
12 members in 1 office
Members12
| Document | Office | Kind | |
|---|---|---|---|
| US2018052572A1 | United States of America | A1 | |
| US2018052593A1 | United States of America | A1 | |
| US2018052594A1 | United States of America | A1 | |
| US2018052596A1 | United States of America | A1 | |
| US10416866B2 | United States of America | B2 | |
| US10474340B2 | United States of America | B2 | |
| US2019354278A1 | United States of America | A1 | |
| US2020012416A1 | United States of America | A1 | |
| US11003344B2 | United States of America | B2 | |
| US11042278B2 | United States of America | B2 | |
| US2021232304A1 | United States of America | A1 | |
| US11460996B2This record | United States of America | B2 |
40 transactions on the USPTO file
Allowed after 1 non-final rejection.
- Non-final rejections
- 1
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 4th Year, Large EntityM1551 | M1551 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Paralegal or electronic terminal disclaimer approvedP574 | P574 | |
| Terminal Disclaimer FiledDIST | DIST | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Email NotificationEML_NTR | EML_NTR | |
| Application ready for PDX access by participating foreign officesCCRDY | CCRDY | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Email NotificationEML_NTR | EML_NTR | |
| Application Is Now CompleteCOMP | COMP | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Application Dispatched from OIPEOIPE | OIPE | |
| FITF set to YES - revise initial settingFTFS | FTFS | |
| Patent Term Adjustment - Ready for ExaminationPTA.RFE | PTA.RFE | |
| PTO/SB/69-Authorize EPO Access to Search ResultsSREXR141 | SREXR141 | |
| Applicants have given acceptable permission for participating foreignAPPERMS | APPERMS | |
| Entity Status Set To Undiscounted (Initial Default Setting or Status Change)BIG. | BIG. | |
| Initial Exam Team nnIEXX | IEXX |
10 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| Information on status: patent application and granting procedure in generalPUBLICATIONS -- ISSUE FEE PAYMENT VERIFIEDSTPP | STPP | |
| Information on status: patent application and granting procedure in generalNOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONSSTPP | STPP | |
| Information on status: patent application and granting procedure in generalRESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINERSTPP | STPP | |
| Information on status: patent application and granting procedure in generalNON FINAL ACTION MAILEDSTPP | STPP | |
| Information on status: patent application and granting procedure in generalDOCKETED NEW CASE - READY FOR EXAMINATIONSTPP | STPP | |
| AssignmentAS | AS | |
| Information on status: patent application and granting procedure in generalAPPLICATION DISPATCHED FROM PREEXAM, NOT YET DOCKETEDSTPP | STPP | |
| Fee payment procedureENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP |
Numbers
- Publication
- 11460996
- Application
- 17228670
Titles
- English
- Modifying style layer properties of a digital map
Patent term adjustment
- Applicant delay
- −100 days
- Net adjustment
- 0 days
Classification
- CPC, 15
- G06F3/04847
- G01C21/367
- G09B29/003
- G06F3/0482
- G06F3/0486
- G06F3/04845
- G06F2203/04806
- G06F16/2379
- G06T11/65
- G06F16/287
- G06F16/29
- G06T11/206
- G06T11/60
- G06T2200/24
- G06T11/26
- IPC, 11
- G06F3 04847
- G06T11 60
- G06T11 20
- G06F3 04845
- G06F3 0482
- G06F16 29
- G06F16 28
- G06F16 23
- G01C21 36
- G09B29 00
- G06F3 0486