Controlling a map viewport dynamically in response to user signals

By using map APIs and automatic viewport selectors, the viewport parameters of digital maps are dynamically adjusted based on user and device signals, solving the problem of map display not meeting requirements on different user devices and achieving personalized map display effects.

CN114385769BActive Publication Date: 2026-04-14GOOGLE LLC
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2016-04-12
Publication Date
2026-04-14

AI Technical Summary

Technical Problem

In existing technologies, when digital maps are displayed on different user devices, the viewport parameters cannot be dynamically adjusted according to the user's location and device characteristics, resulting in map displays that do not meet user needs.

Method used

By using map APIs and automatic viewport selectors, the viewport parameters of digital maps, such as zoom level, center position, and map style, are dynamically adjusted based on user and device signals, and personalized displays are achieved using information such as user location, device location, and user preferences.

Benefits of technology

It enables personalized map display based on user location and device characteristics, improving the relevance of map content and user experience, and meeting the different needs of different users.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114385769B_ABST
    Figure CN114385769B_ABST
Patent Text Reader

Abstract

The present disclosure relates to dynamically controlling a map viewport according to a user signal. A non-transitory computer-readable medium stores instructions that implement an application programming interface (API) for generating a digital map. When invoked by a software module executing on one or more processors of a client device, the API operates to (i) determine a geographic location to include in the digital map, wherein the geographic location is specified by a server device coupled to the client device over a communication network, (ii) select parameters of a viewport of the digital map based at least on a distance from a current location of the client device to the specified geographic location, (iii) generate the digital map according to the selected parameters, and display the digital map through a user interface of the client device.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Case Analysis

[0002] This application is a divisional application of Chinese invention patent application 201680020403.X, filed on April 12, 2016. Technical Field

[0003] This disclosure relates to interactive digital maps, and more specifically to parameters for determining the viewport in which the digital map is displayed. Background Technology

[0004] The background description provided herein is intended to generally present the background of this disclosure. The work of the currently named inventors, to the extent described in this background section, and in any aspects of the description that may not conform to the prior art at the time of submission, neither explicitly nor implicitly acknowledges that the prior art is in conflict with this disclosure.

[0005] Currently, various computing devices, including many portable devices, support software applications that display interactive digital maps. Users of these computing devices can operate software applications such as web browsers to access digital map providers and view interactive digital maps. Furthermore, many web content providers (such as retailers operating physical stores) include digital maps in their content. For this purpose, instructions on the website can call the digital map provider's Application Programming Interface (API). Further, users may sometimes want to share their location with another user and, for example, embed digital maps in email messages. In these and similar cases, digital maps are typically centered around a specific location and have a zoom level, i.e., a zoom-in level. Summary of the Invention

[0006] Digital map providers, based on the correlation between the current location of a client device and the indicated geographic location, and / or the correlation between the client user and the specified geographic location, enable several client devices to display digital maps including a specific geographic location at different zoom levels. Thus, for example, when a user of a client device shares her current geographic location in Paris with a friend in Paris and another friend in the United States, the digital map provider can automatically provide the friend in Paris with a relatively enlarged digital map depicting the vicinity of Paris, and the friend in the United States with a relatively reduced digital map depicting Paris on a map of France. As another example, a furniture store's website can embed a digital map to show the store's location, and different users accessing the website will view the map at different zoom levels based on their estimated distance to the store.

[0007] In one specific embodiment of these technologies, a non-transitory computer-readable medium stores instructions for an application programming interface (API) for generating digital maps. When invoked by a software module executing on one or more processors of a client device, the API operates to (i) determine a geographic location to be included in the digital map, wherein the geographic location is specified by a server device coupled to the client device via a communication network, (ii) select parameters for the viewport of the digital map based at least on the distance from the current location of the client device to the specified geographic location, and (iii) generate the digital map according to the selected parameters and display the digital map via a user interface of the client device.

[0008] Another embodiment of these technologies is a method for generating a digital map executable on one or more processors. The method includes: receiving a request to provide an instruction to a first device operated by a first user and a second device operated by a second user for a specific geographic location; determining a first distance between the indicated geographic location and a geographic location of the first device, and a second distance between the geographic location and the geographic location of the second device; determining a first zoom level of a digital map including the geographic location based at least in part on the first distance; determining a second zoom level of the digital map including the geographic location based at least in part on the second distance; and causing a first digital map to be displayed via the first device at the first zoom level, and a second digital map to be displayed via the second device at the second zoom level.

[0009] Another embodiment of these technologies relates to a method for generating a digital map executable on one or more processors. The method includes: receiving, by one or more processors, a request to share a specific geographic location indication with a first target user operating a first target device and a second target user operating a second target device from a source device where location-sharing user operations are performed; and determining, by the one or more processors, a first relationship between the first target user and the indicated geographic location and a second relationship between the second target user and the indicated geographic location. The method further includes: determining, by the one or more processors, first viewport parameters of a first digital map including the indicated geographic location, at least in part based on the first determined relationship; and determining, by the one or more processors, second viewport parameters of a second digital map including the indicated geographic location, at least in part based on the second determined relationship. Furthermore, the method includes causing the one or more processors to: display the first digital map via a first device according to the first viewport parameters; and display the second digital map via a second device according to the second viewport parameters. Attached Figure Description

[0010] Figure 1 An example scenario is illustrated where the map viewport is dynamically controlled based on user signals;

[0011] Figure 2 This is a block diagram of an example system that can implement technologies for controlling map viewports;

[0012] Figure 3 It is possible Figure 2 A block diagram of an example client device operating in the system;

[0013] Figure 4 It is possible Figure 2 The flowchart illustrates an example method implemented in the system for personalizing a digital map on a user device based on the distance between the user device and a geographic location on the digital map.

[0014] Figure 5 This is a flowchart of an example method for generating digital maps at different corresponding zoom levels on two user devices using the API of this disclosure; and

[0015] Figure 6 It is possible Figure 2 The flowchart illustrates an example method implemented in the system for sharing geolocation indication with multiple user devices. Detailed Implementation

[0016] SUMMARY

[0017] For example, third-party content providers such as businesses or social networking services can offer digital map resources embedded with geographic areas via the map application programming interface (API) of an online map provider. This resource can be a website, an email message, or any other suitable type of electronic document. When two different users access the resource, the map API and / or another suitable software component determine the parameters of the map viewpoint based on user and / or device-specific signals. For instance, if the San Diego Zoo's website includes calls to the map API to show the zoo's location on a digital map, the map API can display the map at a relatively high zoom level to users visiting the site near San Diego, and at a relatively low zoom level to users visiting the site from San Francisco, as local users are more likely to be interested in a local perspective. In this way, the map API can increase the likelihood of the map including user-relevant content.

[0018] Map APIs can also set a default zoom level. For example, providers of resources that call the map API can specify a default zoom level, and in some implementations, conditions for overriding the default zoom level can be specified.

[0019] In some cases, third-party content providers' resources may include references to geographic locations but not calls to map APIs. For example, a reference could be an address that includes building numbers, street names, and town names. Addresses can be included in email bodies, text messages, or on websites. When a user accesses the resource from a device that has a map API installed, the map API can automatically recognize the geographic location references. Therefore, map APIs can be referenced in content from third-party content providers and / or automatically invoked by the user's device processing that content.

[0020] As another example, a user in Sydney might want to share her location with several friends via a social networking service that calls the Maps API, or triggers the Maps API by referencing a geolocation. When a friend in Sydney checks her location via the social networking service, the map provider is able to generate a map of the vicinity of Sydney that includes the user's current location and display a marker at that location. However, when a friend in Paris performs a similar check, the map provider is able to generate a map of Australia and place the marker in Sydney, because for that friend, information about the user's location within Sydney might seem unnecessary.

[0021] In addition to user location associated with a location on the map, the map API can also process other user-specific signals, such as estimated familiarity with the area or personal preferences, for example, when such information is available (in some embodiments, the user also operates specific controls and / or installs specific applications to allow the map provider to personalize the map in this way). The map API can use, for example, user login information and / or the device's IP address to obtain the location of the device rendering the digital map.

[0022] For ease of explanation and illustration, the dynamic determination of map viewport parameters will be discussed below primarily with reference to the map APIs of online map providers. However, more generally, this or similar functionality can be provided in any suitable software component, such as a dedicated map application. Thus, in response to determining the appropriate distance between the user device and the geographic location, two instances of a map software application running on two separate user devices can automatically display a digital map, thereby depicting the same geographic location at different zoom levels.

[0023] In some cases, a map API running on a user device determines the distance between the user device and a geographic location by querying the map provider's map server. The map API may also query the map server to determine zoom levels or other map viewport parameters when the map server has better access to relevant information (such as a user profile). Unless otherwise stated, references to map APIs selecting or determining viewport parameters should be understood to include implementations where the map API determines parameters locally, when the map API determines parameters by querying the map server, or when the map API determines parameters in collaboration with the map server.

[0024] Therefore, according to the technology of this disclosure, the software component selects parameters for the viewport in which the digital map is presented based on signals specific to the user and the device. These signals may include the distance between the geographical location of the center of the digital map (or the area surrounding the location where the digital map is otherwise organized) and the geographical location of the device rendering the digital map. The software component can be implemented at least in part as a map API or a dedicated software application.

[0025] Example scenarios

[0026] Figure 1 This illustration schematically depicts an example scenario where devices A and B, located at locations 12A and 12B, respectively access resources embedded in a digital map at location 10 in Paris, France, using an online map provider's API. User Alice's operation could be device A on a desktop computer, and user Bob's operation could be device B, for example, a smartphone. The resources in this scenario are a website maintained by the restaurant, containing content in markup languages ​​such as HTML. This content could include text and multimedia files describing menus, reviews, etc., as well as a description showing the restaurant's location on the digital map.

[0027] Restaurant operators can reasonably anticipate that visitors to their restaurant website will include local residents who may be interested in precise navigation, as well as those who live further away, possibly in other countries, who may be interested in the restaurant's more general location. To allow different website visitors to view the restaurant's location on a digital map based on the visitor's location and / or other user or device-specific signals, operators include references in their website content to the API (“Map API”) of an online provider of digital maps implemented according to the techniques disclosed herein.

[0028] In operation, the web browser applications on each of devices A and B access the website and execute corresponding instances of instructions implementing the Map API. Based on locations 12 and 14 regarding location 10, the Map API is able to dynamically determine map viewport parameters in devices A and B. Since location 12A is within a specific radius R of location 10, such as within 20 km, device A displays a digital map 22 including location 10 at a relatively high zoom level. However, since location 12A is outside the radius R, device B displays a digital map 24 including location 10 at a relatively low zoom level. Specifically, digital map 22 is a map that includes only a few city blocks and shows geographical features such as the names of nearby streets, the nearest metro station, the nearest hotel, etc. Thus, location 10 is displayed with high precision, allowing the user of device A to determine the city blocks of location 10, or even one side of a street, by viewing digital map 22. Conversely, digital map 24 depicts almost the entire country of France and only shows major geographical features such as national borders, large cities, major highways, etc. Location 10 is displayed with low precision. The user of device B can only determine that location 10 is in Paris, but cannot determine a more precise location by looking at digital map 24.

[0029] If needed, restaurant website operators can specify default zoom levels for the digital map. If a visitor to the restaurant website does not indicate their location, or if the distance between the visitor's current location and the restaurant cannot be determined for some other reason, the map API can generate a digital map with the default zoom level.

[0030] As another example, user Alice can share her current location with user Bob, who is operating his tablet, via her smartphone. Based on Bob's current and / or permanent location relative to Alice's location, the disclosed map API enables a digital map illustrating Alice's location to appear on Bob's computer at either low or high zoom levels. As a more specific example, if Bob and Alice are within the same general neighborhood (e.g., within a one-mile radius), the map API can provide a digital map covering only four city blocks, showing Alice's location as accurately as possible. If Bob and Alice are in the same city but not in the same general neighborhood, the map API can provide a digital map covering the entire city, showing Alice's location more approximatingly. If Bob and Alice are not even in the same city, the map API can provide a digital map covering a relatively large geographic area, such as a county, state, province, or even country, indicating Alice's location with a label placed on or adjacent to the city.

[0031] In these scenarios, Alice does not control the zoom level at which her shared location will be displayed on Bob's computer, or only provides a suggested zoom level that will be overridden later by the Map API. While Bob can subsequently adjust the map's zoom level as needed, the Map API provides a digital map at a zoom level that is convenient for Bob. Furthermore, the automatic selection of the zoom level itself immediately informs Bob of the distance to Alice's current location.

[0032] In addition to controlling the zoom level, the map API disclosed herein can also control other viewport parameters, such as automatically centering the viewport differently based on the distance between Alice and Bob's positions (or the corresponding positions of devices A and B relative to position 10 in the example above), automatically selecting map style features based on distance, and automatically selecting the map layer to be displayed in the viewport.

[0033] As another example, Alice could also share her location with user Charlie, whose current location might be far from Alice's. However, since Charlie's home is close to Alice's current location, the map API could provide Charlie with a digital map covering only a few city blocks, similar to the case where Charlie's current location is close to Alice's. In this scenario, the map provider accessed through the map API could estimate that Charlie might be familiar with Alice's neighborhood, thus allowing the map API to provide more accurate directions on the magnified digital map. In various implementations, the map provider and / or map API can utilize any number of user- and device-specific signals, such as current location, frequently used or other possible locations, estimated level of familiarity with the area, previous geographic searches related to the area, other behaviors of interest to the area, etc. The map provider and / or map API can assign weights to these signals according to any suitable scheme.

[0034] Example systems and apparatus

[0035] Figure 2This is a block diagram of an example system 100 that enables dynamic control of map viewport parameters based on user-specific signals. System 100 includes example user devices 102 and 104, each of which can be, for example, a smartphone, tablet, personal digital assistant, laptop computer, etc. User devices 102 and 104 can access a third-party content provider 106 via a communication network 109, which can include any suitable number of wired and / or wireless topologies forming a local area network or a wide area network such as the Internet. Server 106, operated by the third-party content provider, can be coupled to a content database 108 that stores text, images, audio files, etc., that constitute the content provided to client devices including user devices 102 and 104. The third-party provider can be a radio station, a business, a social media network, etc.

[0036] Example content 120 includes HTML instructions and calls to the map API 122 of an online map provider. The online map provider is able to operate one or more map servers 124, which provide map data, and in some embodiments geographic business data or other geospatial data, to client devices. Depending on the implementation, content 120 may contain, for example, all instructions implementing map API 122, some of the instructions implementing map API 122 (the remaining instructions are stored on a remote device such as map server 124), or simply a URL reference to a remote location (again, such as map server 124) where the instructions implementing API 122 are stored. As a more specific example of a later implementation, content 120 may specify the web server where the instructions reside, the filename storing the instructions, the file format (e.g., JavaScript), and parameters provided to the instructions. For example, parameters may include, for example, an identifier of the geographic location (e.g., “123 Main St., Springfield”) and a default zoom level. Corresponding instances of web browser applications 126 and 128 execute on user devices 102 and 104 and retrieve content 120. Web browser applications 126 and 128 do not need to be instances of the same software and can come from the same or different software vendors. When web browser applications 126 and 128 call the map API 122 as specified in content 120, devices 102 and 104 request map data from map server 124.

[0037] Map API 122 can be implemented as one or more functions, data structures, message handling schemes, etc. Furthermore, in some embodiments, Map API 122 includes compiled code that executes directly on the user device's processor. In other embodiments, the instructions for Map API 122 are scripted languages ​​interpreted at runtime by a web browser on the user device.

[0038] Depending on the implementation, map server 124 can be a single computing device with memory and one or more processors that execute instructions stored in memory, a pool of such devices (each capable of handling requests for data), a hierarchical collection of front-end and back-end servers, etc. However, for ease of explanation, Figure 2 The map server 124 is shown schematically as a single device.

[0039] Map server 124 can manipulate map data stored in map database 132 to generate interactive digital maps. In some scenarios, map server 124 can also utilize user data stored in user profile database 134. Specifically, map server 124 can implement automatic viewport selector 140 as a set of software instructions stored in non-transitory computer-readable storage and executed by one or more processors. Automatic viewport selector 140 can receive requests generated when executing map API 122 from user device, determine map viewport parameters based on user device and / or user-specific signals of the user device, and generate interactive digital maps using map database 132, and in some cases, user profile database 134. Example operations of automatic viewport selector 140 are discussed in more detail below.

[0040] The data in map database 132 can correspond to various types of geographic data, including terrain data, street data, urban traffic information, traffic data, etc. Geographic data can also be schematic or based on photography such as satellite imagery. For example, the data in map database 132 can conform to any suitable format, including raster and vector graphics formats. Generally, raster format images specify which colors are applied to the various pixels that make up the image, while vector graphics format graphics include points and mathematical descriptions of various shapes (e.g., a line can be specified using vector graphics at two endpoints and indicators of thickness and color). In some embodiments, the data in map database 132 can be organized into regularly sized component images or "tiles" corresponding to specific zoom levels.

[0041] The data in user profile database 134 can include user preferences, information that users choose to store as part of their personal profile (e.g., home location, work location, preferred locations). In some implementations, the data in database 134 can include overlays (e.g., shapes, polylines, symbols, etc.) that users have created on their interactive digital maps to indicate points of interest (or areas of interest such as neighborhoods), user preferences for specific map layers to be displayed (e.g., traffic layers, transportation layers, weather layers, etc.), user style preferences (e.g., changing the visual display of map elements such as roads, parks, urban areas, etc.), and so on. The map server can access the appropriate records within user profile database 134 using authentication information such as login and password.

[0042] Able to Figure 3 The user device 150 shown similarly implements each of user devices 102 and 104. The user device can be a desktop computer, laptop computer, tablet computer, smartphone, or other handheld device, or any other device through which the user can view digital maps. User device 150 includes one or more processors 152 such as a central processing unit (CPU), computer-readable storage 154, a user interface 156, a network interface 158, and a positioning module 160. More generally, computing device 150 can include any suitable number of processors, and, if desired, one or more graphics processing units (GPUs) and other processing units. Storage 154 can be a computer-readable, tangible, non-transitory storage device and can include both persistent (e.g., hard disk, flash drive) and non-persistent (e.g., RAM) memory components. Storage 154 stores instructions executable on processor 152 that constitute a web browser application 170, which can be similar to the reference... Figure 2 The web browser applications 126 or 128 are discussed. The memory 154 can also store map data 180, personalized data 182, and retrieval references. Figure 2 The discussion covers third-party content related to Maps API 122, page 184.

[0043] User interface 156 may include a touchscreen or display device and a separate input device, such as a keyboard. More generally, user interface 156 may include any suitable number and type of components for receiving user input and generating output for the user. Network interface 158 may include wired and / or wireless communication modules for communication via short-range and / or long-range communication links. Positioning module 160 may include one or more of the following: a Global Positioning System (GPS) receiver, a wireless LAN receiver capable of detecting the current location of device 150 via triangulation, a proximity sensor, etc.

[0044] In operation, web browser application 170 obtains content from third-party content providers (such as... Figure 1 Provider 106 (shown) obtains third-party content 184. Web browser application 170 processes content 184 by parsing instructions, displaying text and graphics, and performs calls to Map API 122. Specifically, web browser application 170 calls Map API 122 to request a digital map of the geographic location specified as part of content 184. (Reference) Figure 1 Content 184 can specify location 10 as a street address, a set of GPS coordinates, or in any other way.

[0045] According to one example implementation, when map API 122 is invoked, it sends a request to a map server (e.g., ...). Figure 2 Map server 124 generates a message to retrieve map data 180. Map data 180 can include vector graphics data interpreted and rasterized at user device 150, rasterized map images, or both. In addition to specifying the geographic location to be included in the digital map, the message indicates the location of device 150 according to an example scenario. This indication can be relatively precise (e.g., GPS coordinates) or only approximate (e.g., the nearest miles). Furthermore, the geographic location indication can be indirect, such as an Internet Protocol (IP) address. According to another scenario, user device 150 cannot directly or indirectly determine its current location, or the user has configured user device 150 not to display its current location, but the user chooses to provide his or her authentication information to the map server. Using this authentication information, the map server can estimate the possible location of user device 150. For example, the possible location of user device 150 can correspond to the user's home or workplace.

[0046] When using authentication information, API 122 does not need to prompt the user for login and / or password information in every situation. In some implementations, API 122 can determine whether a user is logged into web browser 170 by examining login data stored in memory 154. If the login data indicates that the user is logged in, API 122 can proceed to request a digital map specific to the logged-in user.

[0047] In any case, the map server provides map data 180 to generate a digital map at a selected zoom level based on the reported or estimated location of the user device 150 and the geographic location of the requested digital map. According to the implementation, the map server can explicitly specify the zoom level at which the map data 180 will be displayed using individual parameters, or implicitly indicate the zoom level by providing only the map tiles associated with that zoom level.

[0048] Continue to refer to Figure 3In other embodiments, memory 154 can store instructions for implementing another software application that can call API 122 and display an interactive digital map via user interface 156. For example, user device 150 can execute a dedicated map application, navigation application, or shopping guide application, each of which is configured to call API 122 in addition to or as a substitute for web browser 170.

[0049] As stated above, API 122 provides digital maps within a viewport defined by the techniques of this disclosure in some scenarios that do not involve third-party content provider 106 or any other third-party content provider.

[0050] Example method for controlling map viewport according to user / apparatus signals

[0051] Now for reference Figure 4 An example method 200 for personalizing a digital map at a user device based on the user device and the geographic location on the digital map can be implemented, for example, in Map API 122 and / or Automatic Viewport Selector 140, and executed at least partially on user device 150. In particular, method 200 can be implemented as a set of instructions stored on a non-transitory computer-readable medium and executed by one or more processors.

[0052] Method 200 begins at box 202, where an indication of a geographic location to be included on a digital map is received. For example, the indication can be included in a web page received from a content provider.

[0053] Then, in box 204, the distance between the user device and the indicated geographic location is determined. In some implementations, the distance is determined only approximately. For example, the distance can be determined as the nearest ten-mile interval. As described above, the current location of the user device can be determined using wireless signal-based positioning techniques, such as GPS or WiFi triangulation, approximate positioning techniques, such as IP address maps, or by estimating the user's location based on historical data, profile data, time, etc.

[0054] Then, viewport parameters are determined or selected based at least on the determined distance (box 206). The determined distance can be compared with a threshold—such as… Figure 1 The radius R shown is compared. More generally, one or more radii can be used as thresholds to determine when certain scaling levels are applied. Furthermore, the threshold can be defined along geometries other than circular geometries. For example, a particular threshold could correspond to "ten miles along a major highway." Further still, in some embodiments, the threshold can be defined based on time rather than distance, such as "two-hour drive."

[0055] For example, the viewport parameter can be the zoom level. In some embodiments, selecting the viewport includes querying a map server. At block 208, a digital map is generated based on the determined map viewport parameters. For example, the digital map can be displayed in a map browser window, a messaging application, or the body of an email.

[0056] Figure 5 This is a flowchart of an example method 250 for generating digital maps at different corresponding zoom levels on two user devices using the map API disclosed herein. For example, method 250 can be implemented as a set of instructions in an automatic viewport selector 140. According to method 250, zoom levels are determined for several user devices. However, other map viewport parameters can be determined using similar methods.

[0057] In box 252, a request is received from the second user to provide a geographic location indication to the first user device. (Return to reference) Figure 1 For example, a first user can operate device A, and a second user can operate device B, and the geographic location can correspond to location 10. Then, one, several, or all of blocks 254 can be executed to determine the zoom level of the digital map to be displayed on the first and second devices. Specifically, in block 254A, the distance between the first device and the indicated geographic location and the distance between the second device and the indicated geographic location are determined. In block 254B, a corresponding measure of familiarity with the indicated geographic location is determined for the users of the first and second devices. For example, these measures can be numerical measures, such as percentages. In other blocks 254, factors such as the user's previous requests for navigation guidance, geographic searches, preferences, and preferred locations can also be analyzed. These factors can be represented by numerical measures and weighted in any suitable manner.

[0058] In box 258, a first zoom level at which the digital map indicating the geographic location should be displayed on the first device is determined based on the determinations in boxes 254A, 254B, etc. Similarly, in box 260, a second zoom level at which the digital map indicating the geographic location should be displayed on the second device is determined based on these determinations. In some scenarios, different zoom levels are selected in boxes 258 and 260, even if a digital map of the same geographic location is required.

[0059] In box 262, a digital map of the indicated geographical area is provided at a first zoom level via a user interface of a first device, and in box 264, a digital map of the indicated geographical area is provided at a second zoom level via a user interface of a second device. Figure 2 When the automatic viewport selector 140 is implemented in method 250, the map server 124 can provide map data to the corresponding user device via a communication network.

[0060] Figure 6 This is a flowchart of an example method 300 for sharing geolocation indication with multiple user devices. This example method can also be implemented in an automatic viewport selector 140 as an instruction set that can be executed on one or more processors.

[0061] Method 300 begins at block 302, where a request is received from a source device indicating that a geographic location is shared with at least two target devices. At block 304, a corresponding relationship between each target device and the indicated geographic location is determined. For example, steps similar to those discussed in block 254 above can be performed. Then, at block 306, corresponding viewport parameters are determined based on the determined relationship, and similar to blocks 262 and 264 discussed above, at block 308, a digital map is provided to the corresponding target device according to the determined viewport parameters.

[0062] Additional considerations

[0063] The additional considerations described below apply to the discussion above. Throughout the specification, various examples may be implemented as components, operations, or structures described as single instances. Although individual operations of one or more methods are shown and described as separate operations, one or more separate operations may be performed simultaneously, and they need not be performed in the order shown. Structures and functionalities presented as separate components in the example configurations may be implemented as composite structures or components. Similarly, structures and functionalities presented as single components may be implemented as separate components. These and other variations, modifications, additions, and improvements fall within the scope of the intent of this disclosure.

[0064] Additionally, specific embodiments herein are described as including logic or a number of components, modules, or mechanisms. Modules may comprise software modules (e.g., code implemented on a machine-readable medium or in transmitted signals, wherein the code is executed by a processor) or hardware modules. A hardware module is a tangible unit capable of performing a specific operation and can be configured or arranged in a specific manner. In example embodiments, one or more hardware modules of one or more computer systems (e.g., standalone, client, or server computer systems) or computer systems (e.g., processors or a group of processors) may consist of software (e.g., an application or application portion) of a hardware module that operates to perform the specific operational functions described herein.

[0065] Methods 200, 250, and 300 may include one or more functional blocks, modules, individual functions, or routines stored in a tangible computer-executable instruction form on a non-volatile computer-readable storage medium and executed using a processor of a computing device (e.g., a server, personal computer, smartphone, portable device accommodating device, attached portable device, front-end unit, tablet computer, head-mounted display, smartwatch, mobile computing device, or other personal computing device as described herein). Methods 200, 250, and 300 may be part of any back-end server (e.g., a location relay server, or any other type of server computing device as described herein) in the example environment, an attached portable device module, a portable device accommodating module, or a front-end unit module, or as part of a module outside that environment. Although the accompanying drawings may be described with reference to other figures for ease of illustration, methods 200, 250, and 300 are capable of being used with other objects and user interfaces. Furthermore, while the above explanation describes the steps of methods 200, 250, and 300 as being performed by specific devices, this is merely illustrative. The blocks of methods 200, 300 and 400 may be performed by one or more devices or other parts of the environment.

[0066] The methods or routines described herein can be implemented at least in part by a processor. For example, at least some operations of the methods can be performed by one or more processors or hardware modules implemented by processors. Implementations of specific operations can be distributed among one or more processors, residing not only within a single machine but also deployed across multiple machines. In some example embodiments, the processor or multiple processors may reside in a single location (e.g., in a home environment, office environment, or server cluster), while in other embodiments, the processors may be distributed across multiple locations.

[0067] The implementation of a specific operation can be distributed across one or more processors, residing not only within a single machine but also deployed across multiple machines. In some example embodiments, one or more processors or processor-implemented modules may reside in a single geographic location (e.g., in a home environment, office environment, or server farm). In other example embodiments, one or more processors or processor-implemented modules may be distributed across multiple geographic locations.

[0068] Furthermore, the accompanying drawings illustrate only some embodiments used in the exemplary environments depicted. Those skilled in the art will readily recognize from the following discussion that alternative embodiments of the structures and methods shown herein may be employed without departing from the principles described herein.

[0069] Upon reading this disclosure, those skilled in the art will understand that there are other alternative structures and functional designs for controlling map viewports using the principles disclosed herein. Therefore, while specific embodiments and applications have been shown and described, it should be understood that the disclosed embodiments are not limited to the exact constructions and components disclosed herein. Various modifications, alterations, and variations can be made by those skilled in the art in the arrangement, operation, and details of the methods and apparatus disclosed herein without departing from the spirit and scope defined by the appended claims.

Claims

1. A method for generating a digital map, the method comprising: One or more processors receive, from a source device that shares location-sharing user operations, a request to share a specific geographic location with a first target user operating a first target device and a second target user operating a second target device; In response to the request to receive an instruction to share the specific geographic location, the one or more processors determine a first familiarity metric of the first target user with respect to a geographic area including the first target user's geographic location and a second familiarity metric of the second target user with respect to the geographic area including the geographic location. The one or more processors determine, at least in part, a first viewport parameter of a first digital map that includes the indicated geographic location but does not include the current location of the first target device, based on the first familiarity metric. The one or more processors determine, at least in part, second viewport parameters of a second digital map, including the indicated geographic location and the current location of the second target device, based on the second familiarity metric. as well as The one or more processors cause the first digital map to be displayed via the first target device according to the first viewport parameters, and cause the second digital map to be displayed via the second target device according to the second viewport parameters.

2. The method according to claim 1, wherein, Determining the first target user's first familiarity metric with the geographic area including the geographic location includes determining the first target user's first familiarity metric based on the first target user's profile data.

3. The method according to claim 1, further comprising: Using the Internet Protocol (IP) address of the first target device, the current location of the first target device is determined, and The current location of the second target device is determined using the IP address of the second target device.

4. The method according to claim 1, wherein, The first viewport parameter and the second viewport parameter are the corresponding zoom levels.

5. The method according to claim 1, wherein, The first viewport parameter and the second viewport parameter are the corresponding center positions of the viewports of the first digital map and the second digital map.

6. The method according to claim 1, wherein, The first viewport parameter and the second viewport parameter are corresponding style features.

7. The method according to claim 1, wherein, The first viewport parameter and the second viewport parameter are the corresponding map layers to be displayed in the viewports of the first digital map and the second digital map.

8. The method according to claim 1, wherein: The first viewport parameter and the second viewport parameter are the corresponding scaling levels; and Determining the first viewport parameters and the second viewport parameters includes overriding the default scaling level.

9. The method according to claim 1, comprising: The request to receive an instruction to share the specific geographic location from a social networking service, the social networking service providing resources embedded in the first digital map via a map application programming interface (API), wherein the resources are processed on the source device.

10. The method according to claim 1, comprising: The request is received from a web browser on the source device, which invokes a map API while processing content from a third-party content provider.

11. A map server, the map server comprising one or more processors and configured to: The source device of the location-sharing user operation receives a request to share a specific geographic location with a first target user operating a first target device and a second target user operating a second target device; In response to the request to receive an instruction to share the specific geographic location, a first familiarity metric of the first target user with the geographic area including the first target user's geographic location and a second familiarity metric of the second target user with the geographic area including the geographic location are determined; Based at least in part on the first familiarity metric, determine the first viewport parameters of a first digital map that includes the indicated geographic location but does not include the current location of the first target device; Based at least in part on the second familiarity metric, a second viewport parameter of a second digital map, including the indicated geographic location and the current location of the second target device, is determined; as well as The first digital map is displayed via the first target device according to the first viewport parameters, and the second digital map is displayed via the second target device according to the second viewport parameters.

12. The map server of claim 11, further configured to, in order to determine a first familiarity metric of the first target user with the geographic area including the geographic location: The first familiarity metric of the first target user is determined based on the profile data of the first target user.

13. The map server according to claim 11, further configured as follows: To determine the current location of the first target device, the Internet Protocol (IP) address of the first target device is used, and To determine the current location of the second target device, the IP address of the second target device is used.

14. The map server according to claim 11, wherein, The first viewport parameter and the second viewport parameter are the corresponding zoom levels.

15. The map server according to claim 11, wherein, The first viewport parameter and the second viewport parameter are the corresponding center positions of the viewports of the first digital map and the second digital map.

16. The map server according to claim 11, wherein, The first viewport parameter and the second viewport parameter are corresponding style features.

17. The map server according to claim 11, wherein, The first viewport parameter and the second viewport parameter are the corresponding map layers to be displayed in the viewports of the first digital map and the second digital map.

18. The map server according to claim 11, wherein: The first viewport parameter and the second viewport parameter are corresponding scaling levels; and To determine the first viewport parameters and the second viewport parameters, the map server is configured to override the default zoom level.

19. The map server according to claim 11, wherein, The request to share the instruction of the specific geographic location is received from a social networking service that provides resources embedded in the first digital map via a map application programming interface (API), wherein the resources are processed on the source device.

20. The map server according to claim 11, wherein, The request to share the instruction for the specific geographic location is received from a web browser on the source device, which invokes the Maps API while processing content from a third-party content provider.

Citation Information

Patent Citations

  • Interactive navigation and view selection in digital mapping

    CN102968257A

  • Map vision correction method and correction device based on points of interest

    CN103558956A