US20150371439A1 - Addiing Custom Content To Mapping Applications - Google Patents
Addiing Custom Content To Mapping Applications Download PDFInfo
- Publication number
- US20150371439A1 US20150371439A1 US14/281,607 US201414281607A US2015371439A1 US 20150371439 A1 US20150371439 A1 US 20150371439A1 US 201414281607 A US201414281607 A US 201414281607A US 2015371439 A1 US2015371439 A1 US 2015371439A1
- Authority
- US
- United States
- Prior art keywords
- map
- tiles
- details
- resource locator
- identified
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B29/00—Maps; Plans; Charts; Diagrams, e.g. route diagram
- G09B29/003—Maps
- G09B29/006—Representation of non-cartographic information on maps, e.g. population distribution, wind direction, radiation levels, air and sea routes
- G09B29/007—Representation of non-cartographic information on maps, e.g. population distribution, wind direction, radiation levels, air and sea routes using computer methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G06F17/30241—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/04—Indexing scheme for image data processing or generation, in general involving 3D image data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30181—Earth observation
- G06T2207/30184—Infrastructure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/04—Architectural design, interior design
Definitions
- Paper-based map designers have always faced a Hobson's choice: they could choose to include greater amounts of detail and create a map that was either too large or too cluttered, or they could choose to remove details and create a map that did not contain the relevant information needed by its users.
- Digital maps accessed via a computing device do not present such a choice. Instead, because the level of detail displayed can be adjusted by the user, such as through a zoom function, digital map designers can include as much detail as can be conveniently and efficiently created, stored and accessed. User control of the amount of detail displayed, and the geographic area displayed, enables each user of a digital map to customize the displayed map for their own purposes.
- map information that frequently changes can require continuous collection and updating efforts on the part of the digital map publisher, which can be both time consuming and costly.
- public transportation routes can frequently change and, if such details are to be part of the digital map, the digital map publisher must first monitor the appropriate sources of the public transportation routes, and must subsequently collect the new route information when it is changed and, finally, must modify the existing digital map data accordingly.
- map information does not frequently change, the sheer quantity of information can limit the ability of the digital map publisher to provide such information.
- satellite imagery can be useful for years before it needs to be updated.
- detailed satellite imagery can require hundreds of gigabytes of storage space and, even more costly, it can require large amounts of network throughput if the digital map is to be provided to users through a network connection.
- digital maps were published via portable computer-readable media, such as floppy disks or compact disks.
- the storage capacity of such computer-readable media limited the amount of detail that publishers could include with digital maps.
- digital maps are also provided to users through network connections.
- Such network-accessed digital maps still suffer from storage constraints, though the quantity of storage available can be orders of magnitude larger.
- the throughput of the network connections of digital map publishers can likewise limit the amount of detail that digital map publishers can provide to large numbers of simultaneous users. For example, ultra-fast multi-gigabit connections can support only a handful of simultaneous users if each user is requesting large quantities of detailed digital map data.
- Digital maps can provide a canvas upon which a vast quantity of data can be presented. While such data would have been traditionally added to the map by the map publisher, it can be more efficient to provide mechanisms by which others can add specific details to the map. Consequently, the level of detail available to consumers of these digital maps can significantly increase without any attendant increase in the storage or bandwidth needed by the map publisher.
- An interface can provide standardized mechanisms by which individual detail publishers can overlay their details upon digital maps provided by a map publisher.
- both the digital maps, and the subsequent, independently hosted, details can be provided in the form of tiles of images downloaded by a browser from network storage media.
- the interface can be implemented as one or more scripts, executable by the browser, to enable the browser to identify the appropriate tiles of both map data and detail data.
- the one or more scripts can further provide instructions to the browser regarding the display of the map and detail data, including, for example, the opacity of the tiles of detail data and the display order of the tiles of detail data if there are multiple layers of such tiles.
- the interface can provide appropriate hand-off mechanisms by which an independently implemented mechanism can be referenced to provide, to the browser, pointers to the relevant detail layer tiles that are to be presented in conjunction with the map tiles.
- Such hand-off mechanisms can provide relevant information, including boundary and zoom information, by which the independently implemented mechanism can determine which detail-layer tiles correspond to the displayed map tiles.
- a Uniform Resource Locator can be used to convey appropriate information necessary to identify map detail tiles corresponding to displayed map tiles.
- the URL with the relevant information can be constructed for a user based on choices made by the user via common user interface elements. For example, text-entry fields and sliders can enable a user to specify how the tiles of map details will be displayed. The user's settings can then be incorporated into an automatically constructed URL.
- a declarative representation of the detail layer can be created, specifying relevant information in a predefined manner.
- a declarative representation can take the form of an eXtensible Markup Language (XML) manifest.
- the declarative representation can be referenced by the interface, or independently implemented mechanism, to both generate pointers to the appropriate map detail tiles, and to instruct the browser regarding their display.
- mechanisms for providing a three-dimensional display can be used with the combination of the map detail tiles and the map tiles, to generate three-dimensional map imagery that includes the details from the detail layer.
- Such three-dimensional display mechanisms can be provided with the relevant detail layer tiles, and the relevant display criteria for those tiles.
- the three-dimensional display mechanisms can themselves generate an appropriate display using, not only the provided data, but also elevation data corresponding to the relevant map tiles, and mathematical formulae for visualizing a three-dimensional surface on a two-dimensional display.
- FIG. 1 is a diagram of an exemplary system that provides context for the described functionality
- FIG. 2 is a block diagram of an exemplary computing device
- FIG. 3 is an exemplary map web page having additional independently provided detail layers
- FIG. 4 is a communicational diagram illustrating an exemplary communicational flow for displaying independently provided map details on a browser
- FIG. 5 is a flow diagram illustrating an exemplary process for displaying independently provided map details on a browser.
- FIG. 6 is an exemplary user interface for automatically constructing a pointer to appropriate detail tiles.
- the following description relates to the independent provision of details on digital maps provided by a digital map publisher.
- An application such as a specific digital map reader, or a more general network or image browser, can be used to display sections, or “tiles,” of a digital map. Further details can be provided by overlaying additional tiles with those details over the digital map tiles. Such further details can be generated, maintained, stored and provided independently of the map tiles.
- Interface mechanisms can facilitate the overlaying of independently provided details by selecting appropriate tiles that comprise the independently provided details and that correspond to the map tiles being shown. Such interface mechanisms can reference declarative specifications of each detail layer to identify the appropriate tiles and to instruct the application to display such map and detail tiles appropriately.
- map and detail tiles can be displayed by either the application, or a combination of the application and external display mechanisms designed to simulate three-dimensional views of the map and details based on relevant elevation data and appropriate mathematical imaging manipulation mechanisms.
- the techniques described herein focus on the presentation of map data and detail data as obtained from one or more network sources accessible via a network browser, such as the ubiquitous “web browser.”
- a network browser such as the ubiquitous “web browser.”
- the described techniques are equally applicable to local content, such as map tiles and detail tiles stored in one or more folders on a hard drive or other local storage medium.
- the described techniques are also equally applicable to the display of map and detail data by applications written specifically for such data and designed to enable common interactive commands used to view maps, such as scrolling around the map and zooming in to or out of specific regions of the map.
- Such customized applications can make use of the external mechanisms described herein, or they can be modified to incorporate such mechanisms themselves.
- program modules include routines, programs, objects, components, data structures, and the like that perform particular tasks or implement particular abstract data types.
- the computing devices need not be limited to conventional personal computers, and include other computing configurations, including hand-held devices, multi-processor systems, microprocessor based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like.
- the computing devices need not be limited to a stand-alone computing devices, as the mechanisms may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network.
- program modules may be located in both local and remote memory storage devices.
- exemplary system 99 is illustrated, providing context for the descriptions below.
- the exemplary system 99 can be part of the Internet 90 , as illustrated, though the reference to the Internet is strictly an example and is not intended to limit the descriptions to Internet protocols, such as the Transmission Control Protocol (TCP), the Internet Protocol (IP), or any other Internet-specific technology.
- Exemplary system 99 includes a personal computing device 10 and website hosting computing devices 20 and 40 connected to the Internet 90 .
- Each of the website hosting devices 20 and 40 hosts a website 21 and 41 , respectively, which can be browsed from the personal computing device 10 with a web browser 11 . More precisely, the various web pages of websites 21 and 41 can be read and displayed by web browser 11 .
- the collection of websites hosted by computing devices connected to the Internet 90 is commonly referred to as the World Wide Web.
- the reference to the World Wide Web is strictly exemplary and is not intended to limit the descriptions to HTTP, HTML, or any other World Wide Web-specific technology.
- Website hosting computing device 40 is a map hosting device having a map website 41 providing digital maps that can be viewed and interacted with through the web browser 11 .
- the digital maps provided by the map website 41 can be composed of map tiles 60 .
- the map website 41 comprises instructions for the browser 11 which enable the browser to determine which of the map tiles 60 are to be displayed.
- the website hosting device 20 is a custom map hosting device having a custom map website 21 for displaying maps with customized content in the form of additional details beyond those offered by the map website 41 .
- the custom map website 21 can display the standard map elements provided by the map website 41 , but can further display details such as current traffic conditions, bike trails, public transportation routes, more detailed satellite imagery, zoning information, building layouts, or any other details that have meaning within the context of the maps of the map website 41 .
- the customized maps of website 21 can be assembled from tiles. However, rather than duplicating the information already present in the map tiles 60 , the custom map website can generate, maintain and store tiles of only the additional map details to which the custom map is directed.
- Such tiles of map details 50 can be combined with the map tiles 60 by the browser 11 to generate the custom maps that are nominally provided by custom map website 21 .
- the web pages of the custom map website 21 can utilize mechanisms, provided by, for example, the map hosting device 40 , to instruct the browser 11 to generate these custom maps that comprise map tiles that are only in part stored and maintained by the custom map hosting device 20 .
- a user of the personal computing device 10 directs the web browser 11 to obtain information from a web page of the custom map website 21 .
- a web page can comprise tagged data that can be displayed by the browser 11 in accordance with the tags.
- Such a web page can further comprise browser-executable instructions, including, for example, browser-executable scripts.
- the web page need not directly recite browser-executable script itself, but can instead merely reference files comprising such scripts, which may be resident elsewhere on the Internet 90 .
- the map hosting device 40 can provide browser-executable scripts for properly combining the map data present in the map tiles 60 with the map detail data present in the tiles of map details 50 .
- Such scripts can rely on a declarative specification provided by the custom map website 21 , and on the tiles of map details 50 .
- the scripts provided by the map hosting device 40 can integrate the map tiles 60 with the tiles of map details 50 by instructing the browser 11 to combine them to form the detailed map intended by the web pages of the custom map website.
- Additional features and mechanisms hosted by the map hosting device 40 can be further leveraged by one or more web pages of the custom map website 21 .
- features and mechanisms hosted by the map hosting device 40 can enable one or more web pages of the custom map website 21 to provide three-dimensional perspective views of maps comprising the details present in the tiles of map details 50 .
- the map hosting device 40 can host a downloadable component that can be instantiated by the browser 11 and can perform graphical manipulation of the relevant map tiles 60 and tiles of map details 50 so as to provide an appropriate three-dimensional perspective. Elevation data, which can be used by the downloadable component to generate the three-dimensional perspective, can be maintained by the map hosting device 40 together with the map tiles 60 .
- features and mechanisms hosted by the map hosting device 40 can provide a user interface that can generate a pointer, known as a Uniform Resource Locator (URL) within the Internet-centric context of FIG. 1 , that has sufficient information to enable the combination of specific tiles from both the map tiles 60 and the tiles of map details 50 .
- a web page of the map website 41 can provide a user interface for generating a URL that identifies a web page of the custom map website 21 . Additional information in the URL can be used by the custom map website 21 , in conjunction with the browser-executable scripts hosted by the map hosting device 40 , to instruct the web browser 11 to generate a map image based on map tiles 60 , tiles of map details 50 , and the settings selected via the provided user interface.
- FIG. 1 Before describing the features and mechanisms hosted by the map hosting device 40 , that can be used by the custom map website 21 , a brief description of the computing devices of FIG. 1 is provided with reference to an exemplary computing device 100 , illustrated in FIG. 2 . Any of the computing devices of system 99 shown in FIG. 1 can be of the form of the exemplary computing device 100 , including the personal computing device 10 and the website hosting devices 20 and 40 .
- the exemplary computing device 100 can include, but is not limited to, one or more central processing units (CPUs) 120 , a system memory 130 , and a system bus 121 that couples various system components including the system memory to the processing unit 120 .
- the system bus 121 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures.
- bus architectures include the Peripheral Component Interconnect (PCI) bus and various higher speed versions thereof, the Industry Standard Architecture (ISA) bus and Enhanced ISA (EISA) bus, the Micro Channel Architecture (MCA) bus, and the Video Electronics Standards Associate (VESA) bus.
- the computing device 100 can optionally include graphics hardware, including, but not limited to, a graphics hardware interface 190 and a display device 191 .
- the computing device 100 also typically includes computer readable media, which can include any available media that can be accessed by computing device 100 and includes both volatile and nonvolatile media and removable and non-removable media.
- computer readable media may comprise computer storage media and communication media.
- Computer storage media includes media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.
- Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by the computing device 100 .
- Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media.
- communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of the any of the above should also be included within the scope of computer readable media.
- the system memory 130 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 131 and random access memory (RAM) 132 .
- ROM read only memory
- RAM random access memory
- BIOS basic input/output system
- RAM 132 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 120 .
- FIG. 2 illustrates operating system 134 , other program modules 135 , and program data 136 .
- the computing device 100 may also include other removable/non-removable, volatile/nonvolatile computer storage media.
- FIG. 2 illustrates a hard disk drive 141 that reads from or writes to non-removable, nonvolatile magnetic media.
- Other removable/non-removable, volatile/nonvolatile computer storage media that can be used with the exemplary computing device include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like.
- the hard disk drive 141 is typically connected to the system bus 121 through a non-removable memory interface such as interface 140 .
- hard disk drive 141 is illustrated as storing operating system 144 , other program modules 145 , and program data 146 . Note that these components can either be the same as or different from operating system 134 , other program modules 135 and program data 136 . Operating system 144 , other program modules 145 and program data 146 are given different numbers hereto illustrate that, at a minimum, they are different copies.
- the computing device 100 may operate in a networked environment using logical connections to one or more remote computers.
- the computing device 100 is shown in FIG. 2 to be connected to the Internet 90 .
- the computing device 100 is not limited to any particular network or networking protocols.
- the logical connection depicted in FIG. 2 is a general network connection 171 that can be a local area network (LAN), a wide area network (WAN) or other networks.
- the computing device 100 is connected to the general network connection 171 through a network interface or adapter 170 which is, in turn, connected to the system bus 121 .
- program modules depicted relative to the computing device 100 may be stored in the memory of one or more other computing devices that are communicatively coupled to the computing device 100 through the general network connection 171 .
- the network connections shown are exemplary and other means of establishing a communications link between computing devices may be used.
- FIG. 3 an exemplary map web page is shown in web browser displays 200 and 250 .
- the web browser display 200 comprises a navigational toolbar 210 and a text entry field 220 for receiving and displaying the network location of the currently displayed web page.
- the currently displayed web page comprises an exemplary digital map 230 of an area having three highways and multiple secondary roads.
- the currently displayed web page further comprises a map control 240 that enables interactive control of the displayed map 230 .
- the illustrated exemplary control 240 can include selection 242 for enabling a two-dimensional display and selection 241 for enabling a three-dimensional display.
- Control 240 can likewise include a zoom slider 243 , enabling the user to select the scale of the map 230 .
- Control 240 can further include display selections 244 , 245 and 246 , enabling the user to toggle between various types of maps, such as a road map, an aerial or satellite view, or a hybrid of the two.
- the displayed map 230 can be further interacted with by clicking, dragging or selecting sections of the map in the browser display 200 .
- the web page comprising the map 230 and control 240 , shown in browser display 200 can be provided to the web browser 11 from a map website 41 , such as would be hosted by a map hosting device 40 , shown in FIG. 1 .
- Browser display 250 of FIG. 3 shows a second web page comprising the same control 240 , but a different digital map 260 .
- the digital map 260 comprises the elements of digital map 230 and further comprises additional map-related details in the form of a pictorial representation of the traffic congestion along the three highways shown.
- the web page comprising the map 260 with traffic details, and the control 240 , that are shown in browser display 250 can be provided to the web browser 11 from a custom map website 21 .
- the web page comprising the map 260 can take advantage of mechanisms provided by the map hosting device 40 to generate the map 260 by instructing the browser 11 to combine the map information used to generate map 230 with the traffic information.
- the custom map hosting device 20 need only obtain, store and maintain the traffic information, or whatever other map details it seeks to provide.
- the underlying map data can be the same data used to generate the map 230 ; namely the data maintained by the map hosting device 40 .
- Each tile is an image file that illustrates a predefined geographic area. For example, one tile can provide map data for a predefined square mile. Another tile can provide a greater amount of map data, but may only cover 100 square yards.
- Mechanisms implemented by the map website 41 determine, based on the zoom level selected through the control 240 , and the requested location, which tiles to use to generate the map 230 . Specifically, when the user selects a particular location, and a particular zoom level, mechanisms implemented by the map website 41 identify the tiles that correspond to the selected location and that have an appropriate level of detail and cover an appropriate amount of geographic area for the selected zoom level. The identified tiles are then transferred to the personal computing device 10 , and are pieced together by the web browser 11 , according to instructions received from the map website 41 , to form a cohesive mosaic that appears as a single continuous map, such as map 230 .
- those same mechanisms can be provided by the web hosting device 40 to external web pages, such as those that comprise the custom map website 21 , to enable those web pages to overlay tiles comprising map details on top of the map tiles that comprise the basic map 230 .
- the custom map website 21 can utilize the same mechanisms that determines which of the map tiles 60 to transmit to the browser 11 to also determine which of the tiles of map details 50 to likewise transmit to the browser 11 .
- the custom map website 21 can also utilize mechanisms hosted by the map hosting device 40 to instruct the browser 11 how to visually combine the selected map tiles 60 with the selected tiles of map details 50 so as to generate the map 260 .
- the custom map website can comprise a manifest that provides a declarative specification regarding the tiles of map details 50 that can be used by the exported mechanisms of the map hosting device 40 to select the appropriate tiles and instruct the browser 11 as to their proper display.
- a manifest can comprise the specification of the location of the tiles of map details 50 , the naming structure used to reference individual tiles from among the tiles of map details, the format used to describe the geographic location represented by an individual tile from the among the tiles of map details, the transparency to be used when the browser 11 displays the tile above a tile from the map tiles 60 , the boundaries, including zoom boundaries and geographic boundaries, within which appropriate map detail tiles can be found, and other analogous information.
- the manifest is not limited to describing only a single layer of map details, nor are the tiles of map details 50 limited to a single set of such tiles.
- the map 260 of FIG. 3 could include, not only an indication of traffic, but could also include public transportation routes.
- the map 260 can be a layered image composed of the map tiles 60 that display the map 230 in addition to one layer of tiles from the tiles of map details 50 directed to the traffic details shown, and a second layer of tiles from the tiles of map details 50 that are directed to the public transportation routes.
- the manifest can further contain a specification of each layer, demarcating, for example, between the tiles that comprise the traffic map details and the tiles that comprise the public transportation map details. Such a demarcation can comprise separate specifications of the transparency of each layer, separate naming conventions used to identify the tiles from each layer and other similar separately specifiable values.
- the mechanisms, indicated above, provided by the map hosting device 40 can be implemented in the form of one or more scripts that can be interpreted and executed by the browser 11 . More specifically, pointers to the scripts can be included in web pages from the website 21 , such that the browser 11 , upon parsing those web pages, would retrieve the scripts from the map hosting device 40 , and execute them.
- the scripts can be designed to access the manifest and, from the information contained in the manifest, and from the map context, identify the tiles, from among the tiles of map details 50 , that are to be displayed by the browser 11 .
- the scripts additionally can instruct the browser 11 as to the proper display of the tiles of map details 50 , including, for example, the imaging order in which the tiles are to be displayed, and the transparency of each layer.
- a communicational flow diagram 300 is shown illustrating the communications between the browser 11 , executing on the personal computing device 10 , and the web site hosting devices 20 and 40 .
- a request 310 for a web page directed to displaying a map with specific details can be made of the custom map hosting device 20 by the web browser 11 .
- the web page data 320 can be sent from the custom map hosting device 20 to the web browser 11 on the personal computing device 10 .
- the web page data 320 can comprise pointers to both the scripts being hosted by the map hosting device 40 , and to the manifest describing the one or more layers of map details represented by the tiles of map details 50 .
- such a manifest is implemented in the form of an eXtensible Markup Language (XML) document with tags for, among other things, the location of the tiles, the opacity with which they are to be displayed, an identification of the layer of tiles if multiple layers are to be used, and the ordering in which the layers of tiles are to be stacked when generating the display.
- XML eXtensible Markup Language
- the browser 11 can follow the pointers provided and can make a request 330 for the scripts being hosted by the map hosting device 40 . While the requested scripts are hosted by the map hosting device 40 , they are provided to the browser 11 , via communications 340 , and are then interpreted and executed by the browser on the personal computing device 10 .
- the scripts received by communications 340 instruct the browser as to the appropriate combination of the map tiles 60 and the tiles of map details 50 . More specifically, the scripts received by communications 340 initially reference the manifest described above to verify that the manifest comprises the information required by the scripts. Subsequently, the scripts can obtain a map context indicating the current zoom level and the current location of the map that is to be displayed by the browser 11 . Such a map context can be provided by the browser 11 or by the custom map web page data 320 .
- the scripts can, using the information contained in the manifest, identify the specific tiles from the tiles of map details 50 that are to be displayed by the browser. For example, one way of specifying, in the manifest, both the location of the tiles of map details 50 , and the manner in which they are to be referenced, is to provide a variable URL, such as: http://tiles.mycompany.com/%4.png, where the “% 4” is a variable that can be replaced with a value derived from the map context.
- the map context as indicated previously, provides an indication of the current zoom level and geographic location that is to be mapped. In one embodiment, such information can be converted into a multi-part value using a predefined conversion process.
- zoom levels can be assigned numerical values such that a zoom level of 1 represents the broadest view—for example, of an entire continent—and each subsequent zoom level value indicates the relative scope of that zoom level as compared to the zoom level having a value of 1.
- a zoom level with a value of 2 can have a scale twice as large as the zoom level with a value of 1.
- Geographic locations can be assigned numerical values based on commonly used geographic location identifiers, such as longitude and latitude. Each of these numerical values can be combined to form a multi-part value.
- a map context having a zoom level of 16 and centered at 42.1 decimal degrees north latitude and 87.8 decimal degrees west longitude can be referenced by the multi-part value 16421878, with the first two digits representing the zoom level, the subsequent three digits representing the latitude in decimal degrees north, and the final three digits representing the longitude in decimal degrees west.
- the scripts provided by the map hosting device 40 can use it to identify specific tiles of the tiles of map details 50 and specific tiles of the map tiles 60 that are to be displayed by the browser 11 .
- the location of the tiles of map details 50 can be specified by a variable URL in the manifest provided by the custom map web page.
- the multi-part value representing the map context can itself be used with the variable URL to identify an appropriate tile.
- the network address of a tile of map details representing an area centered at 42.1 decimal degrees north latitude and 87.8 decimal degrees west longitude, and having a zoom value of 16 can be http://tiles.mycompany.com/16421878.png.
- the script can identify that tile, and the surrounding tiles, such as by appropriately varying the value representing the map context, and can instruct the browser 11 to obtain those tiles from among the tiles of map details 50 .
- the script can likewise identify the relevant tiles from among the map tiles 60 , though such an identification can occur without reference to the manifest provided by the custom map website 21 since the script provided by the map hosting device 40 would already know how to select from among the map tiles 60 .
- the web browser 11 is shown, via communication 350 , requesting the specified map tiles from the tiles of map details 50 and the map tiles 60 , which can then be provided to the web browser 11 by the communications 360 .
- the browser can be instructed to assemble the tiles to form a coherent map image comprising the details provided by the custom map website 21 .
- the scripts obtained via communication 320 can reference the manifest provided by the custom map website 21 and instruct the browser 11 to display the tiles in accordance with the display priority and opacity specified.
- the manifest can specify whether the tiles of map details are displayed with complete opacity, such that the underlying map tiles are wholly visible “through” the tiles of map details, or displayed with no opacity, such that the map tiles are not visible.
- some intermediate level of opacity can be selected, such as, for example, by specifying a percentage of opacity.
- the web browser 11 itself comprises sufficient instructions necessary to implement the required graphical processing to simulate the appearance of the tiles of map details above the map tiles with the specified level of opacity.
- the manifest can specify a display priority, indicating which of the layers should be prominent, such that it is graphically presented as if it were “above” the other layer.
- a flow diagram 400 is shown, illustrating the processing performed by the scripts obtained from the map hosting device 40 via communications 320 .
- the map context can be obtained from the browser 11 , or the custom map website 21 , and can be used to identify which tiles, from among the map tiles 60 , are to be displayed by the browser.
- the identification of the map tiles to be displayed based on the map context can take advantage of the existing mechanisms that would have been used by the map website 41 when it would display only the base map, without any of the details added by the custom map website 21 .
- identification of map tiles by the map website 41 was performed by back-end controls executing on the map hosting device 40 , such back-end controls could be used again, in step 420 , to perform the same function, namely: return the network addresses to the appropriate tiles from among the map tiles 60 .
- identification of the map tiles to be displayed based on the map context can be performed by the script itself being executed by the browser 11 , such as in the manner described in detail above with reference to the tiles of map details 50 .
- a check at step 430 can be performed to determine if the custom map website 21 uses its own mechanism for identifying detail tiles from among the tiles of map details 50 .
- Such a check can be based on, for example, the setting of a tile path override parameter within the web page. If the tile path override parameter is not set, then the default mechanisms can be used as described above, and as further described below in connection with the remaining steps of flow diagram 400 . However, if the tile path override parameter specifies an alternative tile path generation mechanism, then the script obtained from the map hosting device 40 can pass control to that mechanism at step 440 .
- the custom map website 21 uses its own mechanism for identifying the detail tiles to be displayed, those tiles need not be generated in advance and stored, such as the tiles of map details 50 . Instead, each tile can be generated in real-time as it is needed. More specifically, because the custom map website 21 is not relying on a process that converts a map context into an identifier of already created tiles to be displayed, it can implement a custom designed mechanism that converts the map context into a request for one or more tiles having a specified zoom level and a specified geographic coverage. Such a request can then be forwarded to a tile generation mechanism that can, in response to the request, create the requested tiles and provide them to the browser 11 .
- step 430 if, at step 430 , it is determined that there is no tile path override, and that the standard tile path generation mechanisms should be used, the processing of the script obtained from the map hosting device 40 can proceed to step 450 , at which point it can reference the manifest to obtain the bounds of the tiles of map details 50 .
- the specifying of bounds can be useful if the map details being provided by the custom map website 21 are not applicable for every section of the digital map provided by the map website 41 . For example, turning back to FIG. 3 , the traffic congestion details provided in map 260 may be available for only the immediate metropolitan area and, consequently, there may not be any tiles of map details 50 beyond such a geographic area.
- the geographic limit of the tiles of map details 50 can be specified in the manifest and referenced at step 450 . If the map context references an area outside of the specified bounds, as determined at step 460 , then the processing performed by the scripts obtained from the map hosting device 40 can end at step 499 , as shown.
- a subsequent determination can be made at step 470 to verify that the map context is within a zoom level for which there are tiles of map details 50 .
- the manifest can include the zoom limits for which there exist tiles of map details 50 . While many map details can be applicable at all zoom levels, others, such as satellite imagery, may have maximum zoom limits beyond which no further detailed imagery exists. Similarly, other map details, such as nature trails, may not have any meaning beyond some minimum zoom limit, since the relevant area appears too small to meaningfully distinguish the nature trails. Consequently, if it is determined at step 470 that the map context is not within the zoom levels specified in the manifest, the processing can end at step 499 , as shown.
- step 470 determines that the map context is within the specified zoom levels
- the scripts obtained from the map hosting device 40 can, at step 480 , generate paths to the appropriate tiles of the tiles of map details 50 , such as in the manner described in detail above.
- the manifest can include the specification of a variable URL and instructions for converting a map context into specific file names that can become part of the variable URL and can identify the tiles, from among the tiles of map details 50 , that are to be displayed together with the map tiles identified at step 420 .
- the browser 11 can be provided with the relevant path, or URL, to those tiles at step 490 .
- the browser 11 can be instructed how to display the specified tiles. Specifically, the opacity of the specified tiles, and their display priority can be obtained from the manifest, and preexisting display functionality of the browser 11 can be used, in conjunction with these parameters, to generate a map display having the details added by the custom map website 21 .
- the map website 41 can include the ability to display simulated three-dimensional images of the maps composed of map tiles 60 . More specifically, the map website 41 can comprise geographic elevation information for the geographic areas represented by the map tiles 60 and can also comprise mechanisms for graphically simulating a three-dimensional map image based this elevation information.
- Such a simulated three-dimensional image can be generated by applying, to the map tiles 60 , known mathematical algorithms that have been developed in the graphical arts. The image manipulation performed by these mathematical algorithms can be based on the elevation information for the geographic area represented by the map tiles, and the “location” of the viewer from whose perspective the three-dimensional map is being drawn.
- the map control 240 is illustrated as having a selection 241 for toggling a simulated three-dimensional view.
- the selection of such a view causes the browser 11 to invoke a component, provided by the map hosting device 40 , that can access the elevation information for the geographic area represented by the map 230 and perform the mathematical manipulations to transform the two-dimensional images that comprise map 230 into simulated three-dimensional images.
- Detailed map 260 can likewise be distorted, based on the elevation information for the geographic area represented by the map 260 , in order to simulate a three-dimensional view.
- the component, provided by the map hosting device 40 , that is used to generate the three-dimensional view can be modified to accept, not only tiles from the map tiles 60 , but also corresponding detail tiles from the tiles of map details 50 .
- the component can then combine the tiles in the same manner as they would have been combined by the browser 11 .
- the component can apply the specified opacity and display ordering to generate a two-dimensional image much as the browser 11 would have.
- the two-dimensional image comprising both the base map and the details added by the custom map website 21 , can be subject to the same mathematical manipulations as the component previously applied to only the map tiles 60 , by themselves, in order to generate simulated three-dimensional views.
- step 490 can be modified to provide the path to the map detail tiles, and the display instructions, not to the browser 11 as indicated, but rather to the control, provided by the map hosting device 40 .
- Step 420 can likewise be modified to provide the path to the map tiles to the control and not to the browser.
- a check can first be made to ensure that the control has already instantiated by the browser 11 . If it has not, the browser 11 can be instructed to instantiate the control.
- the control can manipulate an appropriate display area of the browser 11 and can generate the simulated three-dimensional images based on the tiles indicated at steps 420 and 490 , based on the display instructions indicated at step 490 , and based on elevation data maintained by the map hosting device 40 .
- the browser 11 could instantiate the three-dimensional image generation component from the map hosting device 40 , and the scripts obtained from the map hosting device could still perform the steps outlined in FIG. 5 , and described in detail above, with the exception of steps 420 and 490 , which could be performed in the alternative manner just described.
- the above described mechanisms can be accessed by merely passing relevant parameters as part of a URL.
- the scripts hosted by the map hosting device 40 can receive relevant parameters, not by reading a manifest provided by the custom map website 21 , as described above, but from a “get” request specifying a URL that comprises the relevant parameters.
- a URL can take the form of a standard URL, specifying a host and file and path information on that host, with the relevant parameters appended onto the end and separated by a predetermined character, such as a tilde.
- the order of the parameters can be predetermined, such that only the value of the parameter can be provided in the URL.
- the order of the parameters appended to the standard URL can be variable and, consequently, the parameters can take the form of name-value pairs separated by predetermined characters to clarify which parameter was assigned a given value. Because some URLs can be limited in length, any parameter that is not specified in the URL can be set to a default value when acted upon by the mechanisms described above.
- a graphical user interface can aid the user in the creation of an appropriately constructed URL that can be used to access a map with the user's annotations.
- the map annotations can take the form of tiles of map details that can be displayed with the map tiles 60 to render an annotated map.
- FIG. 6 a browser screen 500 showing such a user interface is illustrated. As before, the browser screen 500 comprises a navigation bar 510 and an address bar 520 for entering locations and directing the browser to specific files.
- the illustrated exemplary user interface aids the user in generating a URL that specifies four parameters: tile location, opacity, bounds, and zoom levels.
- tile location specifies four parameters: tile location, opacity, bounds, and zoom levels.
- opacity e.g., a URL that specifies four parameters: tile location, opacity, bounds, and zoom levels.
- zoom levels e.g., zoom levels.
- any number of parameters could be manipulated by interface elements presented to the user.
- the exemplary user interface of FIG. 6 provides for only four parameters.
- the location of the tiles of map details 50 that the user desires to combine with the map tiles 60 can be specified using the location of tiles user interface element 530 .
- the location of the tiles can be entered in a text box 531 , either by having the user manually enter the location directly into the text box, or by having the user select the browse button 532 to select the location of the tiles using more common user interface elements, such as a standard “file open” dialog box.
- the location of the tiles can be specified in the form of a variable pointer, such as a URL having a variable component that can be changed to refer to different tiles, as dictated by the map context.
- Another parameter that can be modified by the user via the graphical interface of FIG. 6 is the level of opacity 540 with which the tiles of map details 50 are to be displayed when they are layered on top of the map tiles 60 .
- Such a parameter can vary between “transparent” and “opaque”, as shown by the slider field 541 , and can be set by the location of the slider bar 542 in the slider field.
- a further parameter that can be set via the graphical interface of FIG. 6 is the boundary of the tiles of map details that are to be superimposed over the map tiles. As indicated above, the specification of such bounds can improve the efficiency of the rendering of the map by the browser 11 , since the script will not need to generate paths to tiles of map details if the user of the browser has selected a geographic area beyond the bounds of the tiles of map details 50 .
- the bounds 550 can be specified via a text entry field 551 , either by direct textual entry by the user, or through a more graphically oriented approach, such as that exemplified by the “draw on map” button 552 . As suggested by its title, the “draw on map” button 552 can enable the user's selection of the bounds 550 via a graphical interface that enables the user to merely select an area on a displayed map as an indication of the bounds.
- the final parameter that can be set by the exemplary user interface shown in browser display 500 is a specification of the minimum and maximum zoom levels for which tiles of map details 50 exist.
- the overall process can be rendered more efficient if minimum and maximum zoom values are specified, since the identification of tiles of map details can be avoided if the current map context comprises a zoom level for which no tiles of map details 50 exist.
- the minimum and maximum zoom levels can be set via slider bars 563 and 564 , respectively.
- the minimum zoom level for which tiles of map details 50 exists can be set by the relative location of slider bar 563 along the slider field 561 and the maximum zoom level for which tiles of map details 50 exists can be set by the relative location of slider bar 564 along the slider field 561 .
- the intermediary zoom levels for which tiles of map details 50 do exist can be indicated via a variable area 562 along the slider field 561 .
- a URL 570 can be automatically created in the text field 571 . Such a URL 570 can then be used to request the display of a map with the details or annotations provided by the user via the tiles of map details 50 . As shown in FIG. 6 , each of the user interface elements 530 , 540 , 550 and 560 can correspond to an element of the URL. As indicated previously, the URL 570 can comprise a standard URL with various parameters appended to it using separation characters, such as tildes. Thus, the URL 570 comprises a standard URL, the last part of which is visible in FIG. 6 , and subsequently comprises four parameters separated by tildes.
- the first such parameter illustrated is the location of tiles, which can be in the form of a variable URL. Subsequently, following a tilde separation character, the opacity parameter can be included.
- the penultimate parameter can be the bounds of the tiles of map details 50 , and the final parameter can be the minimum and maximum zoom levels.
- the web browser 11 can initiate a “get” request using the provided URL.
- This “get” request can be directed to a computing device identified by the initial portion of the entered URL, which, in one embodiment, can be the map hosting device 40 .
- a “get” request can be routed to the map website 41 , or other server software for responding to such requests.
- the map website 41 can parse the requested URL and retrieve the appended parameters. Rather than obtaining these parameters from the manifest, the above described mechanisms, such as the scripts described in connection with FIG. 5 , can now obtain the appended parameters from the parsing mechanisms of the map website 41 .
- the scripts can operate as described above, and provide the web browser 11 with the appropriate map tiles and tiles of map details, and the appropriate display instructions.
- the browser 11 can ultimately display a map comprising details or annotations, and a user can provide such a map to others by simply referencing the appropriately constructed URL, and without setting up a custom map website 21 .
- a map hosting device can provide mechanisms for enabling externally hosted map details to be combined with maps hosted by the map hosting device in order to deliver, to a user, digital maps having a broad range of details.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Remote Sensing (AREA)
- Educational Technology (AREA)
- Educational Administration (AREA)
- Business, Economics & Management (AREA)
- Mathematical Physics (AREA)
- Ecology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Data Mining & Analysis (AREA)
- Architecture (AREA)
- Computing Systems (AREA)
- User Interface Of Digital Computer (AREA)
- Instructional Devices (AREA)
- Processing Or Creating Images (AREA)
Abstract
Description
- This application is a continuation of U.S. patent application Ser. No. 11/731,032 filed on Mar. 29, 2007.
- Paper-based map designers have always faced a Hobson's choice: they could choose to include greater amounts of detail and create a map that was either too large or too cluttered, or they could choose to remove details and create a map that did not contain the relevant information needed by its users. Digital maps accessed via a computing device do not present such a choice. Instead, because the level of detail displayed can be adjusted by the user, such as through a zoom function, digital map designers can include as much detail as can be conveniently and efficiently created, stored and accessed. User control of the amount of detail displayed, and the geographic area displayed, enables each user of a digital map to customize the displayed map for their own purposes.
- However, while greater amounts of information can be efficiently consumed by the user of a digital map, and increase the user's perceived value of the digital map, the collection, maintenance and storage of such information can limit the amount and type of information typically provided by digital map publishers. Map information that frequently changes can require continuous collection and updating efforts on the part of the digital map publisher, which can be both time consuming and costly. For example, public transportation routes can frequently change and, if such details are to be part of the digital map, the digital map publisher must first monitor the appropriate sources of the public transportation routes, and must subsequently collect the new route information when it is changed and, finally, must modify the existing digital map data accordingly. Even if map information does not frequently change, the sheer quantity of information can limit the ability of the digital map publisher to provide such information. For example, satellite imagery can be useful for years before it needs to be updated. However, detailed satellite imagery can require hundreds of gigabytes of storage space and, even more costly, it can require large amounts of network throughput if the digital map is to be provided to users through a network connection.
- Historically, digital maps were published via portable computer-readable media, such as floppy disks or compact disks. The storage capacity of such computer-readable media limited the amount of detail that publishers could include with digital maps. More recently, especially with the growth of the Internet and the World Wide Web, digital maps are also provided to users through network connections. Such network-accessed digital maps still suffer from storage constraints, though the quantity of storage available can be orders of magnitude larger. Furthermore, the throughput of the network connections of digital map publishers can likewise limit the amount of detail that digital map publishers can provide to large numbers of simultaneous users. For example, ultra-fast multi-gigabit connections can support only a handful of simultaneous users if each user is requesting large quantities of detailed digital map data.
- Digital maps, especially those accessible over a network, can provide a canvas upon which a vast quantity of data can be presented. While such data would have been traditionally added to the map by the map publisher, it can be more efficient to provide mechanisms by which others can add specific details to the map. Consequently, the level of detail available to consumers of these digital maps can significantly increase without any attendant increase in the storage or bandwidth needed by the map publisher.
- An interface can provide standardized mechanisms by which individual detail publishers can overlay their details upon digital maps provided by a map publisher. In one embodiment, both the digital maps, and the subsequent, independently hosted, details can be provided in the form of tiles of images downloaded by a browser from network storage media. The interface can be implemented as one or more scripts, executable by the browser, to enable the browser to identify the appropriate tiles of both map data and detail data. The one or more scripts can further provide instructions to the browser regarding the display of the map and detail data, including, for example, the opacity of the tiles of detail data and the display order of the tiles of detail data if there are multiple layers of such tiles.
- In one embodiment, the interface can provide appropriate hand-off mechanisms by which an independently implemented mechanism can be referenced to provide, to the browser, pointers to the relevant detail layer tiles that are to be presented in conjunction with the map tiles. Such hand-off mechanisms can provide relevant information, including boundary and zoom information, by which the independently implemented mechanism can determine which detail-layer tiles correspond to the displayed map tiles.
- In another embodiment, a Uniform Resource Locator (URL) can be used to convey appropriate information necessary to identify map detail tiles corresponding to displayed map tiles. To enable programmatically unskilled individuals the ability to add details to a digital map, the URL with the relevant information can be constructed for a user based on choices made by the user via common user interface elements. For example, text-entry fields and sliders can enable a user to specify how the tiles of map details will be displayed. The user's settings can then be incorporated into an automatically constructed URL.
- To facilitate the selection of relevant map detail tiles, and to facilitate their display with map tiles, a declarative representation of the detail layer can be created, specifying relevant information in a predefined manner. In one embodiment, such a declarative representation can take the form of an eXtensible Markup Language (XML) manifest. The declarative representation can be referenced by the interface, or independently implemented mechanism, to both generate pointers to the appropriate map detail tiles, and to instruct the browser regarding their display.
- In a still further embodiment, mechanisms for providing a three-dimensional display can be used with the combination of the map detail tiles and the map tiles, to generate three-dimensional map imagery that includes the details from the detail layer. Such three-dimensional display mechanisms can be provided with the relevant detail layer tiles, and the relevant display criteria for those tiles. However, instead of relying on the display capabilities of the browser, the three-dimensional display mechanisms can themselves generate an appropriate display using, not only the provided data, but also elevation data corresponding to the relevant map tiles, and mathematical formulae for visualizing a three-dimensional surface on a two-dimensional display.
- This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
- Additional features and advantages will be made apparent from the following detailed description that proceeds with reference to the accompanying drawings.
- The following detailed description may be best understood when taken in conjunction with the accompanying drawings, of which:
-
FIG. 1 is a diagram of an exemplary system that provides context for the described functionality; -
FIG. 2 is a block diagram of an exemplary computing device; -
FIG. 3 is an exemplary map web page having additional independently provided detail layers; -
FIG. 4 is a communicational diagram illustrating an exemplary communicational flow for displaying independently provided map details on a browser; -
FIG. 5 is a flow diagram illustrating an exemplary process for displaying independently provided map details on a browser; and -
FIG. 6 is an exemplary user interface for automatically constructing a pointer to appropriate detail tiles. - The following description relates to the independent provision of details on digital maps provided by a digital map publisher. An application, such as a specific digital map reader, or a more general network or image browser, can be used to display sections, or “tiles,” of a digital map. Further details can be provided by overlaying additional tiles with those details over the digital map tiles. Such further details can be generated, maintained, stored and provided independently of the map tiles. Interface mechanisms can facilitate the overlaying of independently provided details by selecting appropriate tiles that comprise the independently provided details and that correspond to the map tiles being shown. Such interface mechanisms can reference declarative specifications of each detail layer to identify the appropriate tiles and to instruct the application to display such map and detail tiles appropriately. Alternatively, greater ease of use can be provided by soliciting specific inputs from a user, such as through a user interface, and automatically generating a pointer to appropriate map detail tiles based on the user's selections. Once identified, the map and detail tiles can be displayed by either the application, or a combination of the application and external display mechanisms designed to simulate three-dimensional views of the map and details based on relevant elevation data and appropriate mathematical imaging manipulation mechanisms.
- The techniques described herein focus on the presentation of map data and detail data as obtained from one or more network sources accessible via a network browser, such as the ubiquitous “web browser.” However, such descriptions are not meant to suggest a limitation of the described techniques to only the display of map and detail data obtained from the World Wide Web, or only to the display of map and detail images within the context of a web browser. To the contrary, the described techniques are equally applicable to local content, such as map tiles and detail tiles stored in one or more folders on a hard drive or other local storage medium. Similarly, the described techniques are also equally applicable to the display of map and detail data by applications written specifically for such data and designed to enable common interactive commands used to view maps, such as scrolling around the map and zooming in to or out of specific regions of the map. Such customized applications can make use of the external mechanisms described herein, or they can be modified to incorporate such mechanisms themselves.
- Although not required, the description below will be in the general context of computer-executable instructions, such as program modules, being executed by a computing device. More specifically, the description will reference acts and symbolic representations of operations that are performed by one or more computing devices or peripherals, unless indicated otherwise. As such, it will be understood that such acts and operations, which are at times referred to as being computer-executed, include the manipulation by a processing unit of electrical signals representing data in a structured form. This manipulation transforms the data or maintains it at locations in memory, which reconfigures or otherwise alters the operation of the computing device or peripherals in a manner well understood by those skilled in the art. The data structures where data is maintained are physical locations that have particular properties defined by the format of the data.
- Generally, program modules include routines, programs, objects, components, data structures, and the like that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the computing devices need not be limited to conventional personal computers, and include other computing configurations, including hand-held devices, multi-processor systems, microprocessor based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like. Similarly, the computing devices need not be limited to a stand-alone computing devices, as the mechanisms may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
- With reference to
FIG. 1 , anexemplary system 99 is illustrated, providing context for the descriptions below. Theexemplary system 99 can be part of theInternet 90, as illustrated, though the reference to the Internet is strictly an example and is not intended to limit the descriptions to Internet protocols, such as the Transmission Control Protocol (TCP), the Internet Protocol (IP), or any other Internet-specific technology.Exemplary system 99 includes apersonal computing device 10 and website hostingcomputing devices Internet 90. Each of thewebsite hosting devices website personal computing device 10 with aweb browser 11. More precisely, the various web pages ofwebsites web browser 11. As will be known by those skilled in the art, the collection of websites hosted by computing devices connected to theInternet 90 is commonly referred to as the World Wide Web. However, as with the reference to the Internet itself, the reference to the World Wide Web is strictly exemplary and is not intended to limit the descriptions to HTTP, HTML, or any other World Wide Web-specific technology. - Website hosting
computing device 40 is a map hosting device having amap website 41 providing digital maps that can be viewed and interacted with through theweb browser 11. The digital maps provided by themap website 41 can be composed ofmap tiles 60. More specifically, themap website 41 comprises instructions for thebrowser 11 which enable the browser to determine which of themap tiles 60 are to be displayed. - In one embodiment, the
website hosting device 20 is a custom map hosting device having acustom map website 21 for displaying maps with customized content in the form of additional details beyond those offered by themap website 41. For example, thecustom map website 21 can display the standard map elements provided by themap website 41, but can further display details such as current traffic conditions, bike trails, public transportation routes, more detailed satellite imagery, zoning information, building layouts, or any other details that have meaning within the context of the maps of themap website 41. As with the maps ofwebsite 41, the customized maps ofwebsite 21 can be assembled from tiles. However, rather than duplicating the information already present in themap tiles 60, the custom map website can generate, maintain and store tiles of only the additional map details to which the custom map is directed. Such tiles of map details 50 can be combined with themap tiles 60 by thebrowser 11 to generate the custom maps that are nominally provided bycustom map website 21. More specifically, the web pages of thecustom map website 21 can utilize mechanisms, provided by, for example, themap hosting device 40, to instruct thebrowser 11 to generate these custom maps that comprise map tiles that are only in part stored and maintained by the custommap hosting device 20. - Initially, a user of the
personal computing device 10 directs theweb browser 11 to obtain information from a web page of thecustom map website 21. Such a web page can comprise tagged data that can be displayed by thebrowser 11 in accordance with the tags. Such a web page can further comprise browser-executable instructions, including, for example, browser-executable scripts. As will be known by those skilled in the art, the web page need not directly recite browser-executable script itself, but can instead merely reference files comprising such scripts, which may be resident elsewhere on theInternet 90. - In one embodiment, the
map hosting device 40 can provide browser-executable scripts for properly combining the map data present in themap tiles 60 with the map detail data present in the tiles of map details 50. Such scripts can rely on a declarative specification provided by thecustom map website 21, and on the tiles of map details 50. When referenced by one or more web pages of thecustom map website 21, the scripts provided by themap hosting device 40 can integrate themap tiles 60 with the tiles of map details 50 by instructing thebrowser 11 to combine them to form the detailed map intended by the web pages of the custom map website. - Additional features and mechanisms hosted by the
map hosting device 40 can be further leveraged by one or more web pages of thecustom map website 21. In one embodiment, features and mechanisms hosted by themap hosting device 40 can enable one or more web pages of thecustom map website 21 to provide three-dimensional perspective views of maps comprising the details present in the tiles of map details 50. In such a case, rather than providing browser-executable script that leverages built-in browser display functionality, themap hosting device 40 can host a downloadable component that can be instantiated by thebrowser 11 and can perform graphical manipulation of therelevant map tiles 60 and tiles of map details 50 so as to provide an appropriate three-dimensional perspective. Elevation data, which can be used by the downloadable component to generate the three-dimensional perspective, can be maintained by themap hosting device 40 together with themap tiles 60. - In another embodiment, features and mechanisms hosted by the
map hosting device 40 can provide a user interface that can generate a pointer, known as a Uniform Resource Locator (URL) within the Internet-centric context ofFIG. 1 , that has sufficient information to enable the combination of specific tiles from both themap tiles 60 and the tiles of map details 50. For example, a web page of themap website 41 can provide a user interface for generating a URL that identifies a web page of thecustom map website 21. Additional information in the URL can be used by thecustom map website 21, in conjunction with the browser-executable scripts hosted by themap hosting device 40, to instruct theweb browser 11 to generate a map image based onmap tiles 60, tiles of map details 50, and the settings selected via the provided user interface. - Before describing the features and mechanisms hosted by the
map hosting device 40, that can be used by thecustom map website 21, a brief description of the computing devices ofFIG. 1 is provided with reference to anexemplary computing device 100, illustrated inFIG. 2 . Any of the computing devices ofsystem 99 shown inFIG. 1 can be of the form of theexemplary computing device 100, including thepersonal computing device 10 and thewebsite hosting devices - Turning to
FIG. 2 , theexemplary computing device 100 can include, but is not limited to, one or more central processing units (CPUs) 120, asystem memory 130, and asystem bus 121 that couples various system components including the system memory to theprocessing unit 120. Thesystem bus 121 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include the Peripheral Component Interconnect (PCI) bus and various higher speed versions thereof, the Industry Standard Architecture (ISA) bus and Enhanced ISA (EISA) bus, the Micro Channel Architecture (MCA) bus, and the Video Electronics Standards Associate (VESA) bus. Thecomputing device 100 can optionally include graphics hardware, including, but not limited to, agraphics hardware interface 190 and adisplay device 191. - The
computing device 100 also typically includes computer readable media, which can include any available media that can be accessed by computingdevice 100 and includes both volatile and nonvolatile media and removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by thecomputing device 100. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of the any of the above should also be included within the scope of computer readable media. - The
system memory 130 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 131 and random access memory (RAM) 132. A basic input/output system 133 (BIOS), containing the basic routines that help to transfer information between elements withincomputing device 100, such as during start-up, is typically stored inROM 131.RAM 132 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processingunit 120. By way of example, and not limitation,FIG. 2 illustratesoperating system 134,other program modules 135, and program data 136. - The
computing device 100 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only,FIG. 2 illustrates ahard disk drive 141 that reads from or writes to non-removable, nonvolatile magnetic media. Other removable/non-removable, volatile/nonvolatile computer storage media that can be used with the exemplary computing device include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like. Thehard disk drive 141 is typically connected to thesystem bus 121 through a non-removable memory interface such asinterface 140. - The drives and their associated computer storage media discussed above and illustrated in
FIG. 2 , provide storage of computer readable instructions, data structures, program modules and other data for thecomputing device 100. InFIG. 2 , for example,hard disk drive 141 is illustrated as storingoperating system 144,other program modules 145, andprogram data 146. Note that these components can either be the same as or different fromoperating system 134,other program modules 135 and program data 136.Operating system 144,other program modules 145 andprogram data 146 are given different numbers hereto illustrate that, at a minimum, they are different copies. - Of relevance to the descriptions below, the
computing device 100 may operate in a networked environment using logical connections to one or more remote computers. For simplicity of illustration, and in conformance with theexemplary system 99 ofFIG. 1 , thecomputing device 100 is shown inFIG. 2 to be connected to theInternet 90. However, thecomputing device 100 is not limited to any particular network or networking protocols. The logical connection depicted inFIG. 2 is ageneral network connection 171 that can be a local area network (LAN), a wide area network (WAN) or other networks. Thecomputing device 100 is connected to thegeneral network connection 171 through a network interface oradapter 170 which is, in turn, connected to thesystem bus 121. In a networked environment, program modules depicted relative to thecomputing device 100, or portions or peripherals thereof, may be stored in the memory of one or more other computing devices that are communicatively coupled to thecomputing device 100 through thegeneral network connection 171. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between computing devices may be used. - In a World Wide Web based environment, network communications occur generally within the context of the display of one or more web pages by a
web browser 11. Turning toFIG. 3 , an exemplary map web page is shown in web browser displays 200 and 250. Theweb browser display 200 comprises anavigational toolbar 210 and atext entry field 220 for receiving and displaying the network location of the currently displayed web page. The currently displayed web page comprises an exemplarydigital map 230 of an area having three highways and multiple secondary roads. The currently displayed web page further comprises amap control 240 that enables interactive control of the displayedmap 230. The illustratedexemplary control 240 can includeselection 242 for enabling a two-dimensional display andselection 241 for enabling a three-dimensional display.Control 240 can likewise include azoom slider 243, enabling the user to select the scale of themap 230.Control 240 can further includedisplay selections control 240, the displayedmap 230 can be further interacted with by clicking, dragging or selecting sections of the map in thebrowser display 200. - The web page comprising the
map 230 andcontrol 240, shown inbrowser display 200, can be provided to theweb browser 11 from amap website 41, such as would be hosted by amap hosting device 40, shown inFIG. 1 .Browser display 250 ofFIG. 3 shows a second web page comprising thesame control 240, but a differentdigital map 260. As can be seen, thedigital map 260 comprises the elements ofdigital map 230 and further comprises additional map-related details in the form of a pictorial representation of the traffic congestion along the three highways shown. The web page comprising themap 260 with traffic details, and thecontrol 240, that are shown inbrowser display 250, can be provided to theweb browser 11 from acustom map website 21. - In one embodiment, the web page comprising the
map 260 can take advantage of mechanisms provided by themap hosting device 40 to generate themap 260 by instructing thebrowser 11 to combine the map information used to generatemap 230 with the traffic information. In such a case, the custommap hosting device 20 need only obtain, store and maintain the traffic information, or whatever other map details it seeks to provide. The underlying map data can be the same data used to generate themap 230; namely the data maintained by themap hosting device 40. - One common approach to generating the display of the
map 230 is to initially create and store small sections of the map as “tiles.” Each tile is an image file that illustrates a predefined geographic area. For example, one tile can provide map data for a predefined square mile. Another tile can provide a greater amount of map data, but may only cover 100 square yards. Mechanisms implemented by themap website 41 determine, based on the zoom level selected through thecontrol 240, and the requested location, which tiles to use to generate themap 230. Specifically, when the user selects a particular location, and a particular zoom level, mechanisms implemented by themap website 41 identify the tiles that correspond to the selected location and that have an appropriate level of detail and cover an appropriate amount of geographic area for the selected zoom level. The identified tiles are then transferred to thepersonal computing device 10, and are pieced together by theweb browser 11, according to instructions received from themap website 41, to form a cohesive mosaic that appears as a single continuous map, such asmap 230. - In one embodiment, those same mechanisms can be provided by the
web hosting device 40 to external web pages, such as those that comprise thecustom map website 21, to enable those web pages to overlay tiles comprising map details on top of the map tiles that comprise thebasic map 230. More specifically, thecustom map website 21 can utilize the same mechanisms that determines which of themap tiles 60 to transmit to thebrowser 11 to also determine which of the tiles of map details 50 to likewise transmit to thebrowser 11. Thecustom map website 21 can also utilize mechanisms hosted by themap hosting device 40 to instruct thebrowser 11 how to visually combine the selectedmap tiles 60 with the selected tiles of map details 50 so as to generate themap 260. - In order to provide for the proper selection of the tiles of map details 50, the custom map website can comprise a manifest that provides a declarative specification regarding the tiles of map details 50 that can be used by the exported mechanisms of the
map hosting device 40 to select the appropriate tiles and instruct thebrowser 11 as to their proper display. In one embodiment, such a manifest can comprise the specification of the location of the tiles of map details 50, the naming structure used to reference individual tiles from among the tiles of map details, the format used to describe the geographic location represented by an individual tile from the among the tiles of map details, the transparency to be used when thebrowser 11 displays the tile above a tile from themap tiles 60, the boundaries, including zoom boundaries and geographic boundaries, within which appropriate map detail tiles can be found, and other analogous information. - The manifest is not limited to describing only a single layer of map details, nor are the tiles of map details 50 limited to a single set of such tiles. For example, the
map 260 ofFIG. 3 could include, not only an indication of traffic, but could also include public transportation routes. In such a case, themap 260 can be a layered image composed of themap tiles 60 that display themap 230 in addition to one layer of tiles from the tiles of map details 50 directed to the traffic details shown, and a second layer of tiles from the tiles of map details 50 that are directed to the public transportation routes. The manifest can further contain a specification of each layer, demarcating, for example, between the tiles that comprise the traffic map details and the tiles that comprise the public transportation map details. Such a demarcation can comprise separate specifications of the transparency of each layer, separate naming conventions used to identify the tiles from each layer and other similar separately specifiable values. - In one embodiment, the mechanisms, indicated above, provided by the
map hosting device 40, can be implemented in the form of one or more scripts that can be interpreted and executed by thebrowser 11. More specifically, pointers to the scripts can be included in web pages from thewebsite 21, such that thebrowser 11, upon parsing those web pages, would retrieve the scripts from themap hosting device 40, and execute them. The scripts, in turn, can be designed to access the manifest and, from the information contained in the manifest, and from the map context, identify the tiles, from among the tiles of map details 50, that are to be displayed by thebrowser 11. The scripts additionally can instruct thebrowser 11 as to the proper display of the tiles of map details 50, including, for example, the imaging order in which the tiles are to be displayed, and the transparency of each layer. - Turning to
FIG. 4 , a communicational flow diagram 300 is shown illustrating the communications between thebrowser 11, executing on thepersonal computing device 10, and the website hosting devices request 310 for a web page directed to displaying a map with specific details can be made of the custommap hosting device 20 by theweb browser 11. In response to such a request, theweb page data 320 can be sent from the custommap hosting device 20 to theweb browser 11 on thepersonal computing device 10. Theweb page data 320 can comprise pointers to both the scripts being hosted by themap hosting device 40, and to the manifest describing the one or more layers of map details represented by the tiles of map details 50. In one embodiment, such a manifest is implemented in the form of an eXtensible Markup Language (XML) document with tags for, among other things, the location of the tiles, the opacity with which they are to be displayed, an identification of the layer of tiles if multiple layers are to be used, and the ordering in which the layers of tiles are to be stacked when generating the display. - Upon receiving the
web page data 320, thebrowser 11 can follow the pointers provided and can make arequest 330 for the scripts being hosted by themap hosting device 40. While the requested scripts are hosted by themap hosting device 40, they are provided to thebrowser 11, viacommunications 340, and are then interpreted and executed by the browser on thepersonal computing device 10. The scripts received bycommunications 340 instruct the browser as to the appropriate combination of themap tiles 60 and the tiles of map details 50. More specifically, the scripts received bycommunications 340 initially reference the manifest described above to verify that the manifest comprises the information required by the scripts. Subsequently, the scripts can obtain a map context indicating the current zoom level and the current location of the map that is to be displayed by thebrowser 11. Such a map context can be provided by thebrowser 11 or by the custom mapweb page data 320. - Once the scripts obtain the map context, they can, using the information contained in the manifest, identify the specific tiles from the tiles of map details 50 that are to be displayed by the browser. For example, one way of specifying, in the manifest, both the location of the tiles of map details 50, and the manner in which they are to be referenced, is to provide a variable URL, such as: http://tiles.mycompany.com/%4.png, where the “% 4” is a variable that can be replaced with a value derived from the map context. The map context, as indicated previously, provides an indication of the current zoom level and geographic location that is to be mapped. In one embodiment, such information can be converted into a multi-part value using a predefined conversion process. For example, zoom levels can be assigned numerical values such that a zoom level of 1 represents the broadest view—for example, of an entire continent—and each subsequent zoom level value indicates the relative scope of that zoom level as compared to the zoom level having a value of 1. Thus, a zoom level with a value of 2 can have a scale twice as large as the zoom level with a value of 1. Geographic locations can be assigned numerical values based on commonly used geographic location identifiers, such as longitude and latitude. Each of these numerical values can be combined to form a multi-part value. For example, a map context having a zoom level of 16 and centered at 42.1 decimal degrees north latitude and 87.8 decimal degrees west longitude, can be referenced by the multi-part value 16421878, with the first two digits representing the zoom level, the subsequent three digits representing the latitude in decimal degrees north, and the final three digits representing the longitude in decimal degrees west.
- Once the map context is obtained, the scripts provided by the
map hosting device 40 can use it to identify specific tiles of the tiles of map details 50 and specific tiles of themap tiles 60 that are to be displayed by thebrowser 11. As indicated previously, the location of the tiles of map details 50, and the manner in which they are to be referenced, can be specified by a variable URL in the manifest provided by the custom map web page. In one embodiment, the multi-part value representing the map context can itself be used with the variable URL to identify an appropriate tile. Returning to the above example, the network address of a tile of map details representing an area centered at 42.1 decimal degrees north latitude and 87.8 decimal degrees west longitude, and having a zoom value of 16, can be http://tiles.mycompany.com/16421878.png. Thus, the script can identify that tile, and the surrounding tiles, such as by appropriately varying the value representing the map context, and can instruct thebrowser 11 to obtain those tiles from among the tiles of map details 50. The script can likewise identify the relevant tiles from among themap tiles 60, though such an identification can occur without reference to the manifest provided by thecustom map website 21 since the script provided by themap hosting device 40 would already know how to select from among themap tiles 60. - Turning back to
FIG. 4 , theweb browser 11 is shown, viacommunication 350, requesting the specified map tiles from the tiles of map details 50 and themap tiles 60, which can then be provided to theweb browser 11 by thecommunications 360. Once theweb browser 11 has obtained the appropriate image tiles, the browser can be instructed to assemble the tiles to form a coherent map image comprising the details provided by thecustom map website 21. Specifically, the scripts obtained viacommunication 320 can reference the manifest provided by thecustom map website 21 and instruct thebrowser 11 to display the tiles in accordance with the display priority and opacity specified. For example, as indicated previously, the manifest can specify whether the tiles of map details are displayed with complete opacity, such that the underlying map tiles are wholly visible “through” the tiles of map details, or displayed with no opacity, such that the map tiles are not visible. Alternatively, some intermediate level of opacity can be selected, such as, for example, by specifying a percentage of opacity. In one embodiment, theweb browser 11 itself comprises sufficient instructions necessary to implement the required graphical processing to simulate the appearance of the tiles of map details above the map tiles with the specified level of opacity. Additionally, if the tiles of map details 50 comprise multiple layers, the manifest can specify a display priority, indicating which of the layers should be prominent, such that it is graphically presented as if it were “above” the other layer. - Turning to
FIG. 5 , a flow diagram 400 is shown, illustrating the processing performed by the scripts obtained from themap hosting device 40 viacommunications 320. Initially, once the scripts have been received by thebrowser 11 and interpreted, they can request, or otherwise obtain, a map context, as indicated bystep 410. The map context can be obtained from thebrowser 11, or thecustom map website 21, and can be used to identify which tiles, from among themap tiles 60, are to be displayed by the browser. In one embodiment, the identification of the map tiles to be displayed based on the map context can take advantage of the existing mechanisms that would have been used by themap website 41 when it would display only the base map, without any of the details added by thecustom map website 21. For example, if identification of map tiles by themap website 41 was performed by back-end controls executing on themap hosting device 40, such back-end controls could be used again, instep 420, to perform the same function, namely: return the network addresses to the appropriate tiles from among themap tiles 60. Alternatively, the identification of the map tiles to be displayed based on the map context can be performed by the script itself being executed by thebrowser 11, such as in the manner described in detail above with reference to the tiles of map details 50. - Once the appropriate map tiles, from among the
map tiles 60, have been identified atstep 420, the appropriate map detail tiles from among the tiles of map details 50 can be identified. Initially, a check atstep 430 can performed to determine if thecustom map website 21 uses its own mechanism for identifying detail tiles from among the tiles of map details 50. Such a check can be based on, for example, the setting of a tile path override parameter within the web page. If the tile path override parameter is not set, then the default mechanisms can be used as described above, and as further described below in connection with the remaining steps of flow diagram 400. However, if the tile path override parameter specifies an alternative tile path generation mechanism, then the script obtained from themap hosting device 40 can pass control to that mechanism atstep 440. In one embodiment, if thecustom map website 21 uses its own mechanism for identifying the detail tiles to be displayed, those tiles need not be generated in advance and stored, such as the tiles of map details 50. Instead, each tile can be generated in real-time as it is needed. More specifically, because thecustom map website 21 is not relying on a process that converts a map context into an identifier of already created tiles to be displayed, it can implement a custom designed mechanism that converts the map context into a request for one or more tiles having a specified zoom level and a specified geographic coverage. Such a request can then be forwarded to a tile generation mechanism that can, in response to the request, create the requested tiles and provide them to thebrowser 11. - Turning back to
FIG. 5 , if, atstep 430, it is determined that there is no tile path override, and that the standard tile path generation mechanisms should be used, the processing of the script obtained from themap hosting device 40 can proceed to step 450, at which point it can reference the manifest to obtain the bounds of the tiles of map details 50. The specifying of bounds can be useful if the map details being provided by thecustom map website 21 are not applicable for every section of the digital map provided by themap website 41. For example, turning back toFIG. 3 , the traffic congestion details provided inmap 260 may be available for only the immediate metropolitan area and, consequently, there may not be any tiles of map details 50 beyond such a geographic area. The geographic limit of the tiles of map details 50 can be specified in the manifest and referenced atstep 450. If the map context references an area outside of the specified bounds, as determined atstep 460, then the processing performed by the scripts obtained from themap hosting device 40 can end atstep 499, as shown. - However, if it is determined at
step 460 that the map context references an area within the specified bounds, a subsequent determination can be made atstep 470 to verify that the map context is within a zoom level for which there are tiles of map details 50. As with the geographic bounds, the manifest can include the zoom limits for which there exist tiles of map details 50. While many map details can be applicable at all zoom levels, others, such as satellite imagery, may have maximum zoom limits beyond which no further detailed imagery exists. Similarly, other map details, such as nature trails, may not have any meaning beyond some minimum zoom limit, since the relevant area appears too small to meaningfully distinguish the nature trails. Consequently, if it is determined atstep 470 that the map context is not within the zoom levels specified in the manifest, the processing can end atstep 499, as shown. - If, however, step 470 determines that the map context is within the specified zoom levels, then the scripts obtained from the
map hosting device 40 can, atstep 480, generate paths to the appropriate tiles of the tiles of map details 50, such as in the manner described in detail above. As indicated above, the manifest can include the specification of a variable URL and instructions for converting a map context into specific file names that can become part of the variable URL and can identify the tiles, from among the tiles of map details 50, that are to be displayed together with the map tiles identified atstep 420. Once identified, thebrowser 11 can be provided with the relevant path, or URL, to those tiles atstep 490. In addition, atstep 490, thebrowser 11 can be instructed how to display the specified tiles. Specifically, the opacity of the specified tiles, and their display priority can be obtained from the manifest, and preexisting display functionality of thebrowser 11 can be used, in conjunction with these parameters, to generate a map display having the details added by thecustom map website 21. - While the above descriptions focused on the display of map tiles as two-dimensional images, they are equally applicable to simulated three-dimensional map images. In one embodiment, the
map website 41 can include the ability to display simulated three-dimensional images of the maps composed ofmap tiles 60. More specifically, themap website 41 can comprise geographic elevation information for the geographic areas represented by themap tiles 60 and can also comprise mechanisms for graphically simulating a three-dimensional map image based this elevation information. Such a simulated three-dimensional image can be generated by applying, to themap tiles 60, known mathematical algorithms that have been developed in the graphical arts. The image manipulation performed by these mathematical algorithms can be based on the elevation information for the geographic area represented by the map tiles, and the “location” of the viewer from whose perspective the three-dimensional map is being drawn. - Turning back to
FIG. 3 , themap control 240 is illustrated as having aselection 241 for toggling a simulated three-dimensional view. In one embodiment, the selection of such a view causes thebrowser 11 to invoke a component, provided by themap hosting device 40, that can access the elevation information for the geographic area represented by themap 230 and perform the mathematical manipulations to transform the two-dimensional images that comprisemap 230 into simulated three-dimensional images. -
Detailed map 260 can likewise be distorted, based on the elevation information for the geographic area represented by themap 260, in order to simulate a three-dimensional view. The component, provided by themap hosting device 40, that is used to generate the three-dimensional view can be modified to accept, not only tiles from themap tiles 60, but also corresponding detail tiles from the tiles of map details 50. The component can then combine the tiles in the same manner as they would have been combined by thebrowser 11. For example, the component can apply the specified opacity and display ordering to generate a two-dimensional image much as thebrowser 11 would have. Once generated, the two-dimensional image, comprising both the base map and the details added by thecustom map website 21, can be subject to the same mathematical manipulations as the component previously applied to only themap tiles 60, by themselves, in order to generate simulated three-dimensional views. - Turning back to
FIG. 5 , to generate simulated three-dimensional views of a map with the map details provided by thecustom map website 21,step 490 can be modified to provide the path to the map detail tiles, and the display instructions, not to thebrowser 11 as indicated, but rather to the control, provided by themap hosting device 40. Step 420 can likewise be modified to provide the path to the map tiles to the control and not to the browser. Prior to providing such information to the control, a check can first be made to ensure that the control has already instantiated by thebrowser 11. If it has not, thebrowser 11 can be instructed to instantiate the control. Once instantiated, the control can manipulate an appropriate display area of thebrowser 11 and can generate the simulated three-dimensional images based on the tiles indicated atsteps step 490, and based on elevation data maintained by themap hosting device 40. Thus, if a user were to click on, or otherwise perform a selection action on, the three-dimensional selection 241, of themap control 240, thebrowser 11 could instantiate the three-dimensional image generation component from themap hosting device 40, and the scripts obtained from the map hosting device could still perform the steps outlined inFIG. 5 , and described in detail above, with the exception ofsteps - The above descriptions focus on the mechanisms by which a web page of the
custom map website 21 can cause aweb browser 11 to display maps having specific details by merging tiles of map details 50 with independently hostedmap tiles 60. In some circumstances, however, it may not be practical to create an entire web page to present such maps having specific details. For example, a user may wish to annotate a map for a very specific purpose, such as indicating the route of a local parade, or marking locations that the user has visited. In such cases, especially those having small targeted audiences, the effort and expense of setting up a website, such as the custom map website, may not be practical. - Consequently, in an alternative embodiment, the above described mechanisms can be accessed by merely passing relevant parameters as part of a URL. More specifically, the scripts hosted by the
map hosting device 40 can receive relevant parameters, not by reading a manifest provided by thecustom map website 21, as described above, but from a “get” request specifying a URL that comprises the relevant parameters. Such a URL can take the form of a standard URL, specifying a host and file and path information on that host, with the relevant parameters appended onto the end and separated by a predetermined character, such as a tilde. In one embodiment, the order of the parameters can be predetermined, such that only the value of the parameter can be provided in the URL. In an alternative embodiment, the order of the parameters appended to the standard URL can be variable and, consequently, the parameters can take the form of name-value pairs separated by predetermined characters to clarify which parameter was assigned a given value. Because some URLs can be limited in length, any parameter that is not specified in the URL can be set to a default value when acted upon by the mechanisms described above. - In one embodiment, a graphical user interface can aid the user in the creation of an appropriately constructed URL that can be used to access a map with the user's annotations. As above, the map annotations can take the form of tiles of map details that can be displayed with the
map tiles 60 to render an annotated map. Turning toFIG. 6 , abrowser screen 500 showing such a user interface is illustrated. As before, thebrowser screen 500 comprises anavigation bar 510 and anaddress bar 520 for entering locations and directing the browser to specific files. - The illustrated exemplary user interface aids the user in generating a URL that specifies four parameters: tile location, opacity, bounds, and zoom levels. Of course, any number of parameters could be manipulated by interface elements presented to the user. For the sake of simplicity of illustration, however, the exemplary user interface of
FIG. 6 provides for only four parameters. - The location of the tiles of map details 50 that the user desires to combine with the
map tiles 60 can be specified using the location of tilesuser interface element 530. The location of the tiles can be entered in atext box 531, either by having the user manually enter the location directly into the text box, or by having the user select thebrowse button 532 to select the location of the tiles using more common user interface elements, such as a standard “file open” dialog box. As with the manifest described above, the location of the tiles can be specified in the form of a variable pointer, such as a URL having a variable component that can be changed to refer to different tiles, as dictated by the map context. - Another parameter that can be modified by the user via the graphical interface of
FIG. 6 is the level ofopacity 540 with which the tiles of map details 50 are to be displayed when they are layered on top of themap tiles 60. Such a parameter can vary between “transparent” and “opaque”, as shown by theslider field 541, and can be set by the location of theslider bar 542 in the slider field. - A further parameter that can be set via the graphical interface of
FIG. 6 is the boundary of the tiles of map details that are to be superimposed over the map tiles. As indicated above, the specification of such bounds can improve the efficiency of the rendering of the map by thebrowser 11, since the script will not need to generate paths to tiles of map details if the user of the browser has selected a geographic area beyond the bounds of the tiles of map details 50. As with the location of thetiles 530, thebounds 550 can be specified via atext entry field 551, either by direct textual entry by the user, or through a more graphically oriented approach, such as that exemplified by the “draw on map”button 552. As suggested by its title, the “draw on map”button 552 can enable the user's selection of thebounds 550 via a graphical interface that enables the user to merely select an area on a displayed map as an indication of the bounds. - The final parameter that can be set by the exemplary user interface shown in
browser display 500 is a specification of the minimum and maximum zoom levels for which tiles of map details 50 exist. As indicated above, the overall process can be rendered more efficient if minimum and maximum zoom values are specified, since the identification of tiles of map details can be avoided if the current map context comprises a zoom level for which no tiles of map details 50 exist. In the exemplary user interface shown inFIG. 6 , the minimum and maximum zoom levels can be set via slider bars 563 and 564, respectively. Specifically, the minimum zoom level for which tiles of map details 50 exists can be set by the relative location ofslider bar 563 along theslider field 561 and the maximum zoom level for which tiles of map details 50 exists can be set by the relative location ofslider bar 564 along theslider field 561. The intermediary zoom levels for which tiles of map details 50 do exist, can be indicated via avariable area 562 along theslider field 561. - As each of the parameters is selected through
user interface elements URL 570 can be automatically created in thetext field 571. Such aURL 570 can then be used to request the display of a map with the details or annotations provided by the user via the tiles of map details 50. As shown inFIG. 6 , each of theuser interface elements URL 570 can comprise a standard URL with various parameters appended to it using separation characters, such as tildes. Thus, theURL 570 comprises a standard URL, the last part of which is visible inFIG. 6 , and subsequently comprises four parameters separated by tildes. The first such parameter illustrated is the location of tiles, which can be in the form of a variable URL. Subsequently, following a tilde separation character, the opacity parameter can be included. The penultimate parameter can be the bounds of the tiles of map details 50, and the final parameter can be the minimum and maximum zoom levels. - When the user enters a URL, such as the one generated in
text box 571, into a webbrowser address field 520, theweb browser 11 can initiate a “get” request using the provided URL. This “get” request can be directed to a computing device identified by the initial portion of the entered URL, which, in one embodiment, can be themap hosting device 40. Within themap hosting device 40, such a “get” request can be routed to themap website 41, or other server software for responding to such requests. Themap website 41 can parse the requested URL and retrieve the appended parameters. Rather than obtaining these parameters from the manifest, the above described mechanisms, such as the scripts described in connection withFIG. 5 , can now obtain the appended parameters from the parsing mechanisms of themap website 41. After receiving the parameters, the scripts can operate as described above, and provide theweb browser 11 with the appropriate map tiles and tiles of map details, and the appropriate display instructions. Thus, by making a “get” request using an appropriately constructed URL, thebrowser 11 can ultimately display a map comprising details or annotations, and a user can provide such a map to others by simply referencing the appropriately constructed URL, and without setting up acustom map website 21. - As can be seen from the above descriptions, a map hosting device can provide mechanisms for enabling externally hosted map details to be combined with maps hosted by the map hosting device in order to deliver, to a user, digital maps having a broad range of details. In view of the many possible variations of the subject matter described herein, we claim as our invention all such embodiments as may come within the scope of the following claims and equivalents thereto.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/281,607 US20150371439A1 (en) | 2007-03-29 | 2014-05-19 | Addiing Custom Content To Mapping Applications |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/731,032 US8749585B2 (en) | 2007-03-29 | 2007-03-29 | Adding custom content to mapping applications |
US14/281,607 US20150371439A1 (en) | 2007-03-29 | 2014-05-19 | Addiing Custom Content To Mapping Applications |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/731,032 Continuation US8749585B2 (en) | 2007-03-29 | 2007-03-29 | Adding custom content to mapping applications |
Publications (1)
Publication Number | Publication Date |
---|---|
US20150371439A1 true US20150371439A1 (en) | 2015-12-24 |
Family
ID=39793485
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/731,032 Active 2030-12-02 US8749585B2 (en) | 2007-03-29 | 2007-03-29 | Adding custom content to mapping applications |
US14/281,607 Abandoned US20150371439A1 (en) | 2007-03-29 | 2014-05-19 | Addiing Custom Content To Mapping Applications |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/731,032 Active 2030-12-02 US8749585B2 (en) | 2007-03-29 | 2007-03-29 | Adding custom content to mapping applications |
Country Status (1)
Country | Link |
---|---|
US (2) | US8749585B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140148203A1 (en) * | 2007-07-27 | 2014-05-29 | Intertrust Technologies Corporation | Content Publishing Systems and Methods |
Families Citing this family (93)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9459622B2 (en) | 2007-01-12 | 2016-10-04 | Legalforce, Inc. | Driverless vehicle commerce network and community |
US9064288B2 (en) | 2006-03-17 | 2015-06-23 | Fatdoor, Inc. | Government structures and neighborhood leads in a geo-spatial environment |
US9070101B2 (en) | 2007-01-12 | 2015-06-30 | Fatdoor, Inc. | Peer-to-peer neighborhood delivery multi-copter and method |
US9098545B2 (en) | 2007-07-10 | 2015-08-04 | Raj Abhyanker | Hot news neighborhood banter in a geo-spatial social network |
US8965409B2 (en) | 2006-03-17 | 2015-02-24 | Fatdoor, Inc. | User-generated community publication in an online neighborhood social network |
US9002754B2 (en) | 2006-03-17 | 2015-04-07 | Fatdoor, Inc. | Campaign in a geo-spatial environment |
US9037516B2 (en) | 2006-03-17 | 2015-05-19 | Fatdoor, Inc. | Direct mailing in a geo-spatial environment |
US9373149B2 (en) | 2006-03-17 | 2016-06-21 | Fatdoor, Inc. | Autonomous neighborhood vehicle commerce network and community |
US11049175B2 (en) * | 2006-07-07 | 2021-06-29 | Joseph R. Dollens | Method and system for managing and displaying product images with progressive resolution display with audio commands and responses |
US8863245B1 (en) | 2006-10-19 | 2014-10-14 | Fatdoor, Inc. | Nextdoor neighborhood social network method, apparatus, and system |
US9360337B2 (en) | 2007-06-20 | 2016-06-07 | Golba Llc | Navigation system and methods for route navigation |
US20080319652A1 (en) * | 2007-06-20 | 2008-12-25 | Radiofy Llc | Navigation system and methods for map navigation |
US20090027418A1 (en) * | 2007-07-24 | 2009-01-29 | Maru Nimit H | Map-based interfaces for storing and locating information about geographical areas |
US8823709B2 (en) * | 2007-11-01 | 2014-09-02 | Ebay Inc. | User interface framework for viewing large scale graphs on the web |
US8350845B2 (en) * | 2009-01-12 | 2013-01-08 | Navteq North America, Llc | Transit view for a traffic report |
US8384564B2 (en) * | 2009-03-06 | 2013-02-26 | Navteq B.V. | Method and system for adding gadgets to a traffic report |
US20130066881A1 (en) * | 2009-05-15 | 2013-03-14 | Hyundai Motor Company | Indexing system of spatial information for combined soi object and content |
US9710961B2 (en) | 2009-09-17 | 2017-07-18 | Nokia Technologies Oy | Method and apparatus for providing contextual rendering of a map |
US8886445B1 (en) * | 2010-03-05 | 2014-11-11 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Automatic aircraft collision avoidance system and method |
US20120159395A1 (en) | 2010-12-20 | 2012-06-21 | Microsoft Corporation | Application-launching interface for multiple modes |
US8689123B2 (en) | 2010-12-23 | 2014-04-01 | Microsoft Corporation | Application reporting in an application-selectable user interface |
US20120177304A1 (en) * | 2011-01-12 | 2012-07-12 | Raytheon Company | System for image intelligence exploitation and creation |
JP5699771B2 (en) * | 2011-04-14 | 2015-04-15 | アイシン・エィ・ダブリュ株式会社 | MAP IMAGE DISPLAY SYSTEM, MAP IMAGE DISPLAY DEVICE, MAP IMAGE DISPLAY METHOD, AND COMPUTER PROGRAM |
US8818706B1 (en) | 2011-05-17 | 2014-08-26 | Google Inc. | Indoor localization and mapping |
US9158445B2 (en) | 2011-05-27 | 2015-10-13 | Microsoft Technology Licensing, Llc | Managing an immersive interface in a multi-application immersive environment |
US9104307B2 (en) | 2011-05-27 | 2015-08-11 | Microsoft Technology Licensing, Llc | Multi-application environment |
US8893033B2 (en) * | 2011-05-27 | 2014-11-18 | Microsoft Corporation | Application notifications |
US8164599B1 (en) * | 2011-06-01 | 2012-04-24 | Google Inc. | Systems and methods for collecting and providing map images |
AU2012261938B2 (en) | 2011-06-03 | 2015-03-19 | Apple Inc. | Devices and methods for comparing and selecting alternative navigation routes |
US8368723B1 (en) * | 2011-07-14 | 2013-02-05 | Google Inc. | User input combination of touch and user position |
US20130057587A1 (en) | 2011-09-01 | 2013-03-07 | Microsoft Corporation | Arranging tiles |
US10353566B2 (en) | 2011-09-09 | 2019-07-16 | Microsoft Technology Licensing, Llc | Semantic zoom animations |
US8922575B2 (en) | 2011-09-09 | 2014-12-30 | Microsoft Corporation | Tile cache |
US9146670B2 (en) | 2011-09-10 | 2015-09-29 | Microsoft Technology Licensing, Llc | Progressively indicating new content in an application-selectable user interface |
US8681176B1 (en) | 2011-09-20 | 2014-03-25 | Google Inc. | Rendering a map using style identifiers |
US8560600B2 (en) | 2011-09-26 | 2013-10-15 | Google Inc. | Managing map elements using aggregate feature identifiers |
US8928691B2 (en) * | 2011-09-26 | 2015-01-06 | Google Inc. | Rendering map images using modifications of non-raster map data |
US20130132846A1 (en) * | 2011-11-21 | 2013-05-23 | Clover Point Cartographics Ltd | Multiple concurrent contributor mapping system and method |
US9170113B2 (en) | 2012-02-24 | 2015-10-27 | Google Inc. | System and method for mapping an indoor environment |
US8937627B1 (en) | 2012-03-28 | 2015-01-20 | Google Inc. | Seamless vector map tiles across multiple zoom levels |
US20130271488A1 (en) * | 2012-04-12 | 2013-10-17 | Nokia Corporation | Method and apparatus for filtering and transmitting virtual objects |
US8965696B2 (en) | 2012-06-05 | 2015-02-24 | Apple Inc. | Providing navigation instructions while operating navigation application in background |
US9886794B2 (en) | 2012-06-05 | 2018-02-06 | Apple Inc. | Problem reporting in maps |
US9429435B2 (en) | 2012-06-05 | 2016-08-30 | Apple Inc. | Interactive map |
US9418672B2 (en) | 2012-06-05 | 2016-08-16 | Apple Inc. | Navigation application with adaptive instruction text |
US9482296B2 (en) | 2012-06-05 | 2016-11-01 | Apple Inc. | Rendering road signs during navigation |
US20130321400A1 (en) | 2012-06-05 | 2013-12-05 | Apple Inc. | 3D Map Views for 3D Maps |
US9997069B2 (en) | 2012-06-05 | 2018-06-12 | Apple Inc. | Context-aware voice guidance |
US10156455B2 (en) | 2012-06-05 | 2018-12-18 | Apple Inc. | Context-aware voice guidance |
US9047691B2 (en) | 2012-06-05 | 2015-06-02 | Apple Inc. | Route display and review |
US10176633B2 (en) | 2012-06-05 | 2019-01-08 | Apple Inc. | Integrated mapping and navigation application |
US20130328861A1 (en) | 2012-06-06 | 2013-12-12 | Apple Inc. | Generation of Road Data |
US9418466B2 (en) * | 2012-06-06 | 2016-08-16 | Apple Inc. | Geospatial representation of data-less map areas |
US11935190B2 (en) | 2012-06-10 | 2024-03-19 | Apple Inc. | Representing traffic along a route |
US9395193B2 (en) | 2012-06-10 | 2016-07-19 | Apple Inc. | Scalable and efficient cutting of map tiles |
US10119831B2 (en) * | 2012-06-10 | 2018-11-06 | Apple Inc. | Representing traffic along a route |
US9235906B2 (en) | 2012-06-10 | 2016-01-12 | Apple Inc. | Scalable processing for associating geometries with map tiles |
US8784199B1 (en) * | 2012-09-27 | 2014-07-22 | Kabam, Inc. | System and method for encoding compressed map information for a game map using a quadrant based PNG image file |
US9317813B2 (en) | 2013-03-15 | 2016-04-19 | Apple Inc. | Mobile device with predictive routing engine |
US9303997B2 (en) | 2013-03-15 | 2016-04-05 | Apple Inc. | Prediction engine |
US9200915B2 (en) | 2013-06-08 | 2015-12-01 | Apple Inc. | Mapping application with several user interfaces |
US11481091B2 (en) * | 2013-05-15 | 2022-10-25 | Google Llc | Method and apparatus for supporting user interactions with non- designated locations on a digital map |
US9396508B2 (en) | 2013-05-15 | 2016-07-19 | Google Inc. | Use of map data difference tiles to iteratively provide map data to a client device |
US20140365459A1 (en) | 2013-06-08 | 2014-12-11 | Apple Inc. | Harvesting Addresses |
US10114537B2 (en) * | 2013-06-10 | 2018-10-30 | Honeywell International Inc. | Frameworks, devices and methods configured for enabling touch/gesture controlled display for facility information and content with resolution dependent display and persistent content positioning |
CA2820305A1 (en) | 2013-07-04 | 2015-01-04 | University Of New Brunswick | Systems and methods for generating and displaying stereoscopic image pairs of geographical areas |
US9241240B2 (en) * | 2013-09-05 | 2016-01-19 | Facebook, Inc | Techniques for server-controlled tiling of location-based information |
US10025468B2 (en) | 2013-11-15 | 2018-07-17 | Google Llc | Personalization of map content via an application programming interface |
US9439367B2 (en) | 2014-02-07 | 2016-09-13 | Arthi Abhyanker | Network enabled gardening with a remotely controllable positioning extension |
US9686692B2 (en) * | 2014-03-20 | 2017-06-20 | Microsoft Technology Licesning, LLC | Wi-Fi tile transfer |
US9457901B2 (en) | 2014-04-22 | 2016-10-04 | Fatdoor, Inc. | Quadcopter with a printable payload extension system and method |
US9004396B1 (en) | 2014-04-24 | 2015-04-14 | Fatdoor, Inc. | Skyteboard quadcopter and method |
US9022324B1 (en) | 2014-05-05 | 2015-05-05 | Fatdoor, Inc. | Coordination of aerial vehicles through a central server |
US9971985B2 (en) | 2014-06-20 | 2018-05-15 | Raj Abhyanker | Train based community |
US9441981B2 (en) | 2014-06-20 | 2016-09-13 | Fatdoor, Inc. | Variable bus stops across a bus route in a regional transportation network |
US9451020B2 (en) | 2014-07-18 | 2016-09-20 | Legalforce, Inc. | Distributed communication of independent autonomous vehicles to provide redundancy and performance |
US10007677B1 (en) | 2014-12-04 | 2018-06-26 | Google Llc | System and method for geospatial indexing |
JP6529751B2 (en) * | 2014-12-08 | 2019-06-12 | 株式会社ディーアンドエムホールディングス | Computer readable program and volume level control device |
US10495478B2 (en) * | 2015-06-06 | 2019-12-03 | Apple Inc. | Feature selection in transit mode |
US9702724B2 (en) | 2015-06-06 | 2017-07-11 | Apple Inc. | Mapping application with transit mode |
US10302442B2 (en) | 2015-06-07 | 2019-05-28 | Apple Inc. | Transit incident reporting |
US10197409B2 (en) | 2015-06-07 | 2019-02-05 | Apple Inc. | Frequency based transit trip characterizations |
US10101878B2 (en) * | 2015-07-06 | 2018-10-16 | Microsoft Technology Licensing, Llc | Sharing map context including result cards |
US10593074B1 (en) * | 2016-03-16 | 2020-03-17 | Liberty Mutual Insurance Company | Interactive user interface for displaying geographic boundaries |
US10503820B2 (en) * | 2016-03-28 | 2019-12-10 | Microsoft Technology Licensing, Llc | Map notes |
US10378918B2 (en) | 2017-01-03 | 2019-08-13 | Microsoft Technology Licensing, Llc | Generating routes from lines based on zoom levels |
US10489980B1 (en) | 2017-03-30 | 2019-11-26 | Amazon Technologies, Inc. | Data discovery through visual interactions |
US10606449B2 (en) | 2017-03-30 | 2020-03-31 | Amazon Technologies, Inc. | Adjusting audio or graphical resolutions for data discovery |
US20180330325A1 (en) | 2017-05-12 | 2018-11-15 | Zippy Inc. | Method for indicating delivery location and software for same |
US10929443B2 (en) | 2018-02-23 | 2021-02-23 | Microsoft Technology Licensing, Llc | Location and context for computer file system |
GB2577478B (en) | 2018-09-06 | 2021-03-10 | Maritech Development Ltd | A method of creating map tiles which comprise vessel information |
CN109739867B (en) * | 2018-12-29 | 2021-01-12 | 北京航天数据股份有限公司 | Industrial metadata management method and system |
CN111581323A (en) * | 2020-05-18 | 2020-08-25 | 中国科学院自动化研究所 | Two/three-dimensional geographic space display method and system |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080172632A1 (en) * | 2006-09-29 | 2008-07-17 | Stambaugh Thomas M | Distributed web-based processing, spatial organization and display of information |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4847788A (en) * | 1985-03-01 | 1989-07-11 | Hitachi, Ltd. | Graphic data processing method and system |
JP2865751B2 (en) * | 1989-12-15 | 1999-03-08 | 株式会社日立製作所 | Display screen scrolling method |
US6321158B1 (en) * | 1994-06-24 | 2001-11-20 | Delorme Publishing Company | Integrated routing/mapping information |
US5760783A (en) * | 1995-11-06 | 1998-06-02 | Silicon Graphics, Inc. | Method and system for providing texture using a selected portion of a texture map |
US6199015B1 (en) * | 1996-10-10 | 2001-03-06 | Ames Maps, L.L.C. | Map-based navigation system with overlays |
US6218965B1 (en) * | 1998-07-30 | 2001-04-17 | The United States Of America As Represented By The Secretary Of The Navy | Moving map composer (MMC) |
JP3278623B2 (en) * | 1999-01-06 | 2002-04-30 | 日本電気株式会社 | Map three-dimensionalization system, map three-dimensionalization method, and storage medium storing map three-dimensionalization program |
US6985929B1 (en) * | 2000-08-31 | 2006-01-10 | The United States Of America As Represented By The Secretary Of The Navy | Distributed object-oriented geospatial information distribution system and method thereof |
WO2005104039A2 (en) * | 2004-03-23 | 2005-11-03 | Google, Inc. | A digital mapping system |
US7274378B2 (en) * | 2004-07-29 | 2007-09-25 | Rand Mcnally & Company | Customized wall map printing system |
US7466244B2 (en) * | 2005-04-21 | 2008-12-16 | Microsoft Corporation | Virtual earth rooftop overlay and bounding |
US8843309B2 (en) * | 2005-04-21 | 2014-09-23 | Microsoft Corporation | Virtual earth mapping |
-
2007
- 2007-03-29 US US11/731,032 patent/US8749585B2/en active Active
-
2014
- 2014-05-19 US US14/281,607 patent/US20150371439A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080172632A1 (en) * | 2006-09-29 | 2008-07-17 | Stambaugh Thomas M | Distributed web-based processing, spatial organization and display of information |
Non-Patent Citations (1)
Title |
---|
Stambaugh, US Provisional Application Serial Number 60/827,516, filed on 09/29/2006, 26 pages. * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140148203A1 (en) * | 2007-07-27 | 2014-05-29 | Intertrust Technologies Corporation | Content Publishing Systems and Methods |
US10051457B2 (en) * | 2007-07-27 | 2018-08-14 | Intertrust Technologies Corporation | Content publishing systems and methods |
US10271197B2 (en) | 2007-07-27 | 2019-04-23 | Intertrust Technologies Corporation | Content publishing systems and methods |
US20200045530A1 (en) * | 2007-07-27 | 2020-02-06 | Intertrust Technologies Corporation | Content publishing systems and methods |
US11218866B2 (en) * | 2007-07-27 | 2022-01-04 | Intertrust Technologies Corporation | Content publishing systems and methods |
Also Published As
Publication number | Publication date |
---|---|
US8749585B2 (en) | 2014-06-10 |
US20080238941A1 (en) | 2008-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8749585B2 (en) | Adding custom content to mapping applications | |
US10990638B2 (en) | Processing ambiguous search requests in a geographic information system | |
US10679386B2 (en) | Draggable maps | |
US9569560B2 (en) | Indicators for entities corresponding to search suggestions | |
US7353114B1 (en) | Markup language for an interactive geographic information system | |
US8688670B2 (en) | System and method for dynamically retrieving data specific to a region of a layer | |
US7047131B2 (en) | Apparatus and method for displaying detailed map of selected area | |
US20110112755A1 (en) | Map interface with placeable marker | |
KR20130094345A (en) | System and method for providing contextual actions on a search results page | |
US20080209332A1 (en) | Map interface with directional navigation | |
US20100198805A1 (en) | Method and apparatus for generating and displaying image | |
Bowie et al. | Interactive mapping of urban tree benefits using Google Fusion Tables and API technologies | |
EP2529314A1 (en) | Remote printing | |
Peterson | The tile-based mapping transition in cartography | |
Sayar et al. | OGC compatible geographical information systems web services | |
Sarjakoski et al. | A real-time generalisation and map adaptation approach for location-based services | |
JP2003228464A (en) | Method and system for generating publication | |
JP2017037437A (en) | Information processing system, information processor, information processing method and information processing program | |
Li | Web mapping/GIS services and applications | |
JP5178258B2 (en) | Data distribution apparatus, data distribution method, and data distribution program | |
McGowan et al. | Ammonoids and Mash-ups: The Potential of Geobrowsers to Enhance Public Awareness of Geodiversity Sites and Objects in Their Spatial Context | |
US20080208463A1 (en) | Map interface with path locations that can be reordered | |
JP2007241890A (en) | Information processing system, and information processing method, and program | |
Meyers et al. | Developing rich web GIS applications for visual analytics | |
US20080208464A1 (en) | Map interface with location-specific executable instructions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034747/0417 Effective date: 20141014 Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:039025/0454 Effective date: 20141014 |
|
AS | Assignment |
Owner name: MICROSOFT CORPORATION, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KINNAN, KEITH ROBERT;THOTA, CHANDRASEKHAR;BHATIA, JAYA;AND OTHERS;SIGNING DATES FROM 20070321 TO 20070327;REEL/FRAME:039774/0410 Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:040069/0125 Effective date: 20141205 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |