Service providers and manufacturers of devices are challenged to deliver quality and value to consumers, for example by providing mapping services. Such mapping services include providing information about points of interest. The information about the points of interest can include information associated with where the respective points of interest are located. Further, the respective points of interest can be associated with description information. The mapping services can be provided in a variety of ways, for example, one mapping service can provide mapping on a device (e.g., a global positioning system device) while another mapping service can be associated with the use of paper maps.
The following detailed description references the drawings, wherein:
People are on the move and travel to various places every day. These places can be local or to travel destinations (e.g., for a trip). Guide books and other documents can be used to provide information about the places and/or help a user decide on a place to go to. Places people decide to travel to generally are associated with one or more points of interest (POIs). In certain embodiments, a POI is a specific location that a person may find interesting or useful. Examples of POIs include a restaurant, a bakery, an airport, a landmark, a hotel, etc. Thus, a POI can be any point that is interesting, useful, or significant in some way.
Maps are an important feature of traditional static travel guide books. However, static print maps cannot handle variable data. Thus, it would require manual effort to construct good, quality maps for customized guide books. Variable content maps, such as those used in global positioning system (GPS) mapping and online mapping services generally center on a single POI and then show other POIs that are nearby. However, this approach would not be useful to generate a variable content guide book of an area because the POI is not known ahead of time.
Accordingly, various embodiments disclosed herein relate to distributing POIs to maps. These maps can be used to generate a customized guide book for users. As such, the guide book can include POIs that are useful to a particular user. Distribution of the POIs to maps can pose technical challenges because the zoom level of the map, the size of the map, and the distribution of the POIs may need to change to provide a map that is viewable by a user. For example, it can be advantageous to use an appropriate zoom level where POIs are spaced to provide meaningful location information. This can be performed by zooming in on POI dense areas and zooming out on POI scarce areas. Another advantageous characteristic can include including a large number of POIs per map in a set of maps used to generate the guide book. As such, fewer maps may be required to show the POIs in a particular area. Thus, a user looking at the guide book can make sense of the maps. Cluster analysis as well as distance statistics can be combined with decision lookup tables, map zoom level calculations, etc. to generate the guide book. In certain embodiments, a guide book is a manual to help a user understand a location. The guide book can be physical (e.g., a printed book), electronic (e.g., a computer file including guide book information), or the like. The guide book can include one or more maps displaying one or more POIs. Further, information about the POIs can be included in the guide book.
The guide platform 102 can provide a customization interface, such as a web interface or an application programming interface (API) to allow users of clients 108 to customize guide books including POIs and maps. Clients 108 can access the interface via the communication network 110. A client 108 can provide a user with options to customize the user's experience to generate the guide book. For example, the user may be able to answer travel related questions, provide lodging details, or provide other details that may be useful in determining which POIs the user would be interested in. In one example, the POIs can be associated with a rating based on questions asked to the user. One such question would be how interested the user is in landmarks, museums, restaurants, etc. Another question may be to determine what cost the user is willing to pay. For example, one user may be on a corporate budget and would like to go to more expensive restaurants, while another user may be on a family travel budget that would be more interested in visiting less expensive sit down restaurants. Answers to such questions can be used to determine a set of POIs in the area that the user may be interested in knowing more information about.
The guide platform 102 can query the POI platform 104 to retrieve information about POIs. This information can be used to determine the set of POIs. Further, the guide platform 102 can generate a decision lookup table including rankings associated with the POIs in the set. Information about the POIs can be associated with location information. The location information can include a longitude and/or latitude, coordinates such as GPS coordinates, street addresses, or the like.
Coordinates of the POIs can be used to determine spacing between POIs as well as distribution of POIs to maps. This can be based on a distance analysis. In one example, coordinates are used to compute the distance from each POI to every other POI. A table or other data structure can be used to store the information. Then, the guide platform 102 determines one of the POIs. The POI can be the POI with the most number of other points within a predetermined distance D. If there is a tie, a tiebreaker can be based on criteria. For example, the POI more relevant based on the decision lookup table can be selected.
Then, a cluster of the POIs of the set can be determined. This cluster can be determined based on the distance D. For example, the cluster can include each of the POIs within D of the determined POI. The amount of POIs in the cluster can be considered a POI count.
The guide platform 102 can then determine how many maps should be used to distribute the POIs of the cluster. In one example, this can be based on a variable of how many POIs should be showed on a map. This variable can be determined by a user, can be based on a maximum amount of POIs to present based on the map platform 106, or the like. Further, the variable can be dynamic for each map. In this scenario, a range can be provided with a minimum and maximum allowable POIs per map. For example, if there is a POI count of 45 and the variable range is between 12 and 16, a map count of 3 would be determined.
Then, guide platform 102 can decide the number of POIs that should be in each map. In one scenario, the POIs are distributed evenly across maps, the remainder also distributed evenly. For example, if the variable is 15, the POI count is 40, and the map count is 3, the POI distribution would be [14, 13, 13]. In another scenario, the variable could be ranged. In this scenario, a variable number of points can be determined for each map. As such, the variable range can be from 10-15 and various POI set distributions can be performed. For example, in the previous scenario, the set could be [15, 13, 12], [15, 14, 11], [14, 13, 13], etc. The number of POIs that should be distributed in each map can also be variable based on other information, such as the layout of the maps.
A statistical analysis can be performed on the POIs of the cluster determine a layout as further detailed in
Further, once maps are generated, additional POIs from the first set of POIs that are not in the cluster can be added to the cluster. This may occur if the POIs would be present in the chosen maps, even if the POIs are not within distance D of the selected POI. The distance and statistical analysis can be performed again with the updated cluster of POIs.
Further, once a cluster is distributed to maps, the analysis can be performed on another POI of the set that is not in the cluster. As such, another cluster can be formed based on that POI and the cluster can be distributed to maps based on the analysis as further detailed in
Additional processing can be performed. For example, the distance analysis and statistical analysis can be performed for each combination of map counts, POIs per map, and map layout that can be used for the cluster. For each permutation, the group of maps that describe the permutation can be determined. Quality statistics can be used to determine a quality score for each map group. Then, the map group with the best quality score can be used.
Various criteria can be used to generate a quality score for the map groups. Some criteria takes into account individual area associated with the maps of the group. For example, it may be advantageous to have a smaller area or focus for each map, thus a map group would score better if the average individual area is determined to be smaller. Further, it may be advantageous for the maps to be roughly the same size, thus a smaller standard deviation of the areas of the individual maps would score higher. In a similar manner, it can be advantageous for the entire area of the maps in the respective groups to have smaller area. These map groups can score better. In certain scenarios, there is a catch all map, these maps may not be scored for this criterion or other criteria.
Other criteria can include zoom levels. As noted above, it is better to have a smaller area or focus, which leads to more spread out POIs. As such, a zoom level average indicating that the zoom level is more zoomed in would score better. Further, a lower value for a zoom level standard deviation would score better because it would be aesthetically pleasing to have the maps zoomed in at about the same level.
Further, criteria can include measures of the shape of the maps. For example, the average width to height percentage difference could be used to score the map groups. Square maps may score better because more area can be viewed with particular zoom boundaries. This may change based on other information (e.g., the shape of a guide book for which the maps are generated).
Other criteria can include the spacing of the maps. For example, less total overlap between maps would be score better. Moreover, it can be advantageous for the total area between maps to be larger. Thus map groups with a larger total area between maps can be scored better. The advantage in this case is that less area is covered that is not associated with POI. As such, more focus is on map areas associated with POIs.
The spread of POIs on individual maps can also be rated. For example, map groups with average standard deviation of latitude and/or longitude for individual maps that are greater can be scored better. This can be to reflect that POIs spread across the individual maps rather than tightly clustered is advantageous. In a similar manner, distance between points, on average, can be used as criteria. As such, map groups with a greater spread of POIs across individual maps rather than tightly clustered would score better. Combinations of these criteria can be used to score or otherwise rate the map groups. The best map group can be selected.
The communication network 110 can use wired communications, wireless communications, or combinations thereof. Further, the communication network 110 can include multiple sub communication networks such as data networks, wireless networks, telephony networks, etc. Such networks can include, for example, a public data network such as the Internet, local area networks (LANs), wide area networks (WANs), metropolitan area networks (MANs), cable networks, fiber optic networks, combinations thereof, or the like. In certain examples, wireless networks may include cellular networks, satellite communications, wireless LANs, etc. Further, the communication network 110 can be in the form of a direct network link between devices. Various communications structures and infrastructure can be utilized to implement the communication network(s).
By way of example, the guide platform 102, the POI platform 104, map platform 106, and clients 108 can communicate with each other and other components with access to the communication network 110 via a communication protocol or multiple protocols. A protocol can be a set of rules that defines how nodes of the communication network 110 interact with other nodes. Further, communications between network nodes can be implemented by exchanging discrete packets of data or sending messages. Packets can include header information associated with a protocol (e.g., information on the location of the network node(s) to contact) as well as payload information. A program or application executing on the components can utilize one or more layers of communication to utilize the messages.
The device 200 can receive a request for a guide book. The request can include one or more preferences and/or POI criteria that can be used to generate the guide book. The preferences and/or POI criteria can include information about answers to questions, for example, about what kinds of POIs would be relevant to the user. Additionally or alternatively, the preference and/or criteria can be preselected and/or selectable. For example, one or more default options can be provided. Further, the request can specify an area for which to generate the guide book. The area may be selected, for example, by selected boundaries, a zip code, coordinates, a selected travel destination, or the like.
As noted above, the device 200 can query a POI platform for POI information about the area. The POI information as well as the POI criteria is used to determine an initial set of POIs. Further, information about the POIs can include coordinate information that can be used to determine relationships between the POIs.
A distance module 210 can determine a distance between each of the POIs and each of the other POIs. As noted, the POIs can be respectively associated with coordinates. The distance module 210 can further generate a data structure (e.g., a table) to store the distance information associated with the POIs.
A selection module 212 can then be used to select one POI from the set of POIs. The selection can be based on a distance analysis. For example, a threshold distance can be used to select the one POI. The one POI can be the POI with the most number of other POIs within the threshold distance of the POI. In the case that there is more than one POI with the same amount of POIs within the threshold distance, other criteria, for example, the POI criteria and/or POI preferences can be used to select the one POI. Other methods can be used to help determine the one POI such as the name of the POI, the type of the POI, etc.
A cluster module 214 can determine a cluster of the POIs that is within a predetermined distance of the one POI. In certain scenarios, the predetermined distance is the threshold distance. Other manners can be used to determine the cluster, for example, using the threshold distance to determine a bounded area (e.g., bounded by a circle, a square, a rectangle, a pentagon, etc.). The threshold distance can be used to determine the bounded area by determining a radius, a side length, etc. of the bounded area. The POIs that are located within the bounded area can be associated with the cluster. This can form two groups, the cluster group including the cluster POIs and the group that represents the set of POIs that are not in the cluster group. In certain embodiments, cluster POIs are POIs that are associated with a particular cluster.
A map determination module 216 determines an amount of maps to distribute the cluster POIs. The map determination module 216 can determine the number of maps based on the number of cluster POIs and a number of POIs to present per map. The number of POIs to present per map can be a static number or can be a variable number. As noted previously, the number can represent a maximum number of POIs to distribute (e.g., based on a technical capacity, a preference, etc.). The amount of maps may be determined by dividing the total POIs in the cluster by the number. The smallest amount of maps that can fit all of the POIs can be used. As such, if there are 50 POIs and the number is 18, a total of 50/18=3 maps rounded up are used.
A distribution module 218 distributes the cluster POIs to the maps based on a statistical analysis. A statistical analysis module 220 can help determine the distribution. The coordinates of the cluster POIs can include a horizontal coordinate and a vertical coordinate. These can be longitude and latitude coordinates, GPS coordinates, Cartesian coordinates, and/or other types of coordinates. The statistical analysis module 220 determines a horizontal spread and a vertical spread. This can be accomplished, for example, by determining a horizontal standard deviation based on the vertical coordinates and a vertical standard deviation based on the horizontal coordinates. In one example, a layout is horizontal if the horizontal standard deviation is greater than and/or equal to the vertical standard deviation. In another example, the layout is vertical if the vertical standard deviation is greater than and/or equal to the horizontal standard deviation. A split can be formed, as further detailed in
The POIs can be proportionately distributed on sides of the split. The location of the split can be based on the locations of the POIs. In one example, the number of maps is even. As such, the split can be formed in a manner such that each map has a proportionate amount of POIs and are on opposite sides of the split. In another example, the number of maps is odd. In this scenario, the split can be weighted so that one side can support an extra map. In the above example of 50 cluster POIs, 3 maps, and a maximum of 18 POIs per map, the POIs can be split. So that two maps can be associated with POIs on one side of the split and one map is associated with the POIs on the other side of the split.
Then, with the remaining non-cluster POIs, the distribution module 218 can select another POI based on distance analysis. Then another cluster associated with the other selected POI can be generated and maps can be determined for the other cluster as described above. Additional clusters can be determined and additional maps can be determined with remaining POIs. Further, the threshold distance can be changed (e.g., increased) for each cluster. In certain scenarios, if an insufficient amount of POIs are found for the cluster, the threshold distance is increased. Further, when a certain number of POIs are left, a catchall map can be used to encompass the remaining POIs.
When the POIs are distributed to the maps, a book module 222 can generate guide book information including the maps. Each map can show its distributed POIs. Further, the guide book information can include description information for each of the POIs. Descriptions can include information about the location of the POI, the type of POI, the history of the POI, ratings of the POI, or the like. With this approach, maps populated with POIs can be determined for generation of the customized guide book. The book information can be stored as a file, for example, as a rich text document, a portable document format (PDF) document, a set of images, a web document, or the like. The book information can further include additional information, such as advertisements, pictures of locations and/or POIs, or the like. Further, the book information can be printed out to generate a physical guide book.
A processor 230, such as a central processing unit (CPU) or a microprocessor suitable for retrieval and execution of instructions and/or electronic circuits can be configured to perform the functionality of any of the modules 210-222. In certain scenarios, instructions and/or other information, such as lookup tables, POI information, maps, etc., can be included in memory 232 or other memories. Input/output interfaces 234 may additionally be provided by the device 200b. For example, input devices 240, such as a keyboard, a mouse, a microphone, etc. can be utilized to receive input from an environment surrounding the device 200b. Further, an output device 242, such as a display, can be utilized to present information to users. Examples of output devices include speakers, display devices, amplifiers, printers, etc. Moreover, in certain embodiments, some components can be utilized to implement functionality of other components described herein. Input and output devices, such as network devices, storage, etc. can also be connected via the input/output interfaces 234.
Each of the modules 210-222 may include, for example, hardware devices including electronic circuitry for implementing the functionality described below. In addition or as an alternative, each module 210-222 may be implemented as a series of instructions encoded on a machine-readable storage medium of device 200 and executable by processor 230. It should be noted that, in some embodiments, some modules are implemented as hardware devices, while other modules are implemented as executable instructions.
Method 300 may start at 302, where the device 200b can be in a state where the device 200b is requested to generate a group of maps with associated POIs. The maps may be used, for example, to generate a guide book. Further, the device 200b may have access to a decision lookup table associated with a requestor. The decision lookup table can be customized based on questions asked to the requestor. Moreover, the device 200b can have access to information about an area to associate with the maps. For example, the guide book can be associated with Washington, D.C. and the area can be a metropolitan area associated with Washington, D.C. Further, the area can be modified based on a options provided to the requestor.
Method 300 may then proceed to 304, where device 200b may determine a plurality of POIs. The POIs can be predetermined (e.g., default), provided by a user, provided by the request, determined based on the area, or the like. The POIs can be associated with coordinates, such as horizontal coordinates like longitude coordinates and vertical coordinates like latitude coordinates. An analysis of the coordinates can be used to determine distribution of the POIs to maps. Further, the maps can be formed based on the distribution of POIs.
At 306, the device 200b can identify one of the POIs based on a distance analysis of the POIs. The distance analysis can include a distance module 210 determining, for each of the POIs, respective numbers of the POIs within a distance D of the respective other POIs. The distance D can be variable, incremented, etc. The identified POI can be identified based on a determination that the number of POIs within the distance D of the identified POI is greater than or equal to the other respective numbers of POIs within the distance of the other POIs. If there is a tie in the number of POIs within the distance D between two or more POIs, other criteria can be used to identify the POI. For example, alphabetical order can be used, the decision lookup table can be used, a rating associated with the POI can be used, or the like.
The method 300 then proceeds to 308, where the cluster module 214 determines a cluster of the POIs. In one example, the cluster includes a set of the POIs that are within the distance D. In another example, the cluster can include a set of the POIs that are determined based on the distance D in another way. For example, the set can include POIs that are within a square or rectangle area with an edge or cross section being associated with the distance D.
Then, at 310, the distribution module 218 can distribute the POIs within the cluster to a plurality of maps based on a statistical analysis. The statistical analysis is further described in
Then, at 312, the method 300 stops. Other processes can be completed by the device 200b after the method 300 stops. For example, the maps can be determined based on the POI distributions (e.g., by requesting a bounded map from a map platform). Also, a book module 222 can be used to generate book information including the maps with the respectively distributed POIs and content respectively describing the distributed POIs. The book information may also include maps associated with additional clusters of POIs. The book information can be stored in one of a plurality of files (e.g., PDF format, a web format, etc.). Further, the book information can be used to generate a guide book by printing out the book information.
Method 400 may start at 402 at a state where a set of POIs have been determined. The set can be based on customization information. Further, a relevance decision table can be generated based on the customization information for the set of POIs. The method 400 proceeds to 404, where device 200b identifies a POI of the set based on a distance analysis. An example of the decision analysis is block 306 of method 300. Then, at 406, a cluster module 214 determines a cluster of the POIs. The cluster can be based on a threshold distance used to identify the POI. In one example, the cluster can include POIs within the threshold distance of the identified POI. In another example, the cluster can include POIs within a boundary determined by the threshold distance. The boundary can be, for example a square or other shape that is determined by the identified POI and the threshold distance.
At 408, a map determination module 216 determines a number of maps to distribute the cluster POIs to. As previously noted, this can be implemented by having a variable that indicates a particular number of POIs to place in a map. The variable can be a maximum number of POIs to associate with the maps. As such, the map determination module 216 determines a count of the maps based on a maximum number of POIs to associate with the respective maps. At 410, a distribution module 218 determines whether a single map can fit the cluster POIs or if multiple maps should be used. If a single map can be used, at 412, the cluster POIs are associated with a single map. As such, the map determination module 216 can determine the boundaries of the map areas associated with the cluster of POIs. The method 400 then continues at 418.
If the distribution module 218 determines that multiple maps should be used to distribute the POIs of the cluster, method 400 proceeds to 414, where a layout of the POIs is determined. Each of the POIs of the cluster can correspond to a horizontal coordinate and a vertical coordinate. As such, a statistical analysis module 220 can determine a horizontal spread based on the vertical coordinates and a vertical spread based on the horizontal coordinates. An example approach to determine a spread is to perform a standard deviation on the coordinate values. As noted above, a comparison of the spreads determines whether the layout is horizontal or vertical. As further discussed in
Then, at 416, the distribution module 218 distributes the cluster POIs to the maps proportionately. Thus, in the case of an even number of maps, the number of POIs on each side of the split can be equal or close to equal (e.g., if there are an odd number of cluster POIs, one side of the split has N POIs and the other side has N+1 POIs). The location of the split can be determined based on various methods. One method can be to choose a location that is a mean or median of the coordinates used to determine the split. Another method can be to choose a split location that allows for the proper number of maps to incorporate the proper number of POIs. For example, if there are 20 POIs in the cluster to be distributed to 2 maps, the split can be determined in a manner such that 10 POIs are located on each map. In certain scenarios, this can lead to an overlap in the maps to cover the same amount of POIs.
In the case that the map count is odd, additional analysis can be performed. For example, the distribution module 218 and/or the statistical analysis module 220 can determine a weighting of the POIs in relation to the directional split as further detailed in
Then, at 418, the cluster module 214 can determine whether additional POIs are found within the map boundaries. If there are additional POIs found, the method 400 can return to 406 to determine an updated set of cluster POIs that include the POIs within the map boundaries of the determined maps. Then, the method can continue using the updated cluster POIs until block 418 is reached. If there are no additional POIs in the cluster, the method 400 continues to 420.
At 420, the selection module 212 determines whether there are unclustered POIs. The clustered POIs are taken out of the set of POIs that are used. Then the method 400 returns to 404 to perform another analysis based on the unclustered POIs. As such, a first one of the unclustered POIs is identified based on a distance analysis of the POIs of the unclustered POIs. Then, another cluster is determined based on the unclustered POIs. The other cluster can be based on a particular distance and the identified unclustered POI. The method can continue until block 420 once again to distribute the unclustered POIs to other maps.
This method 400 can be repeated until a break condition occurs. The break condition can include a determination at 420 that no additional unclustered POIs are remaining. Further, another stop condition can include a determination that the remaining POIs unclustered can fit in to a single map. This catchall map can include the remaining POIs and the method 400 can stop at 422.
The device 200b can continue to perform other processes. For example, the device 200b can determine the contents of the maps. Further, a book module 222 can generate book information including the maps with the respectively distributed POIs and content describing the POIs. The book information can be represented digitally. Further, the book information can be printed out to generate a physical guide book.
The layout 502 in this scenario is horizontal. As noted above, the number of POIs and a variable (e.g., maximum POIs per map) can be used to determine the number of maps to distribute the POIs to. In one example, the number of maps for this case can be two maps. As such, the POIs can be split evenly according to a horizontal split. In this scenario, two sets of POIs can include [C, D, G, I, J, L] and [A, B, E, F, H, K] split at split line 504. In another example, the number of maps can be three. As such, the POIs can be split according to weighting as further detailed in
In the example of
In certain examples, a layout is heavy on a particular side if there are more POIs on a particular side of a layout orientation. In one example, a horizontal layout like in
In another example, a vertical layout like in
In a second iteration of method 400, a distribution of the cluster includes POIs corresponding to the locations of maps 804. In this example, the distance threshold is greater, so a larger distribution of POIs can be covered in a larger area. Further, there can be a greater amount of POIs, leading to the use of three maps, 804a, 804b, 804c. In this example, a horizontal layout is determined that is top heavy. As such, two maps, 804a, 804b are on the top side of the split while one map, 804c is on the bottom side of the split.
As the method 400 continues, a third iteration is performed yielding maps 806a, 806b. This iteration can include an even greater distance threshold. As such, the area covered by maps 806a, 806b is greater. This can also be attributed to a smaller concentration of POIs. For example, the POIs can be concentrated in the area of map 802 and maps 804a, 804b, 804c. This can indicate, for example, a downtown area of a city. In this example, the maps can be divided along a vertical split line between 806a and 806b. The amount of POIs can fit in two maps. In one example, the POIs in map 806a and 806b are determined from a set after the POIs in maps 802, 804a, 804b, and 804c are taken out of the set. As such, less overlap of maps can be possible.
Further, in this example, the zoom levels of the maps can be dependent on the size of the maps. As such, map 802 can be further zoomed in than maps 804a, 804b, and 804c. Additionally, maps 806a and 806b can be zoomed out more. Zoom levels can be based on the length and/or width of the maps compared to the availability of size on a layout of where the maps are presented.
Processor 910 may be, at least one central processing unit (CPU), at least one semiconductor-based microprocessor, at least one graphics processing unit (GPU), other hardware devices suitable for retrieval and execution of instructions stored in machine-readable storage medium 920, or combinations thereof. For example, the processor 910 may include multiple cores on a chip, include multiple cores across multiple chips, multiple cores across multiple devices (e.g., if the computing device 900 includes multiple node devices), or combinations thereof. Processor 910 may fetch, decode, and execute instructions 922, 924, 926, 928, 930 to implement methods 300 and 400. As an alternative or in addition to retrieving and executing instructions, processor 910 may include at least one integrated circuit (IC), other control logic, other electronic circuits, or combinations thereof that include a number of electronic components for performing the functionality of instructions 922-930.
Machine-readable storage medium 920 may be any electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions. Thus, machine-readable storage medium may be, for example, Random Access Memory (RAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a storage drive, a Compact Disc Read Only Memory (CD-ROM), and the like. As such, the machine-readable storage medium can be non-transitory. As described herein, machine-readable storage medium 920 may be encoded with a series of executable instructions for distributing POIs to map sets.
The computing device 900 can be used to implement a guide platform. The computing device 900 may receive a request for a customized guide from a client device. The computing device 900 can have access to customization information, for example, by receiving the customization information. POI grouping instructions 922 can determine POIs based on the customization information and/or location information. Location information can include a target area for which to determine the map sets for. As noted previously, customization information can include answers to a questionnaire or other preferences that can determine which POIs are relevant to the user. The POI grouping instructions can also cause the processor 910 to determine the locations of the POIs. Each of the POIs can be associated with horizontal coordinates and vertical coordinates. Various types of coordinates can be used, for example, GPS coordinates, longitude and latitude, etc.
To determine the map sets, distance instructions 924 can cause the processor 910 to determine a distance between each of the POIs and each of the other POIs. This information can be stored in a memory (e.g., a table data structure). The distance information can further be determined based on the horizontal and vertical coordinates and can be scaled.
The POI identification instructions 926 then cause the processor 910 to identify one of the POIs based on a number of POIs within a predetermined distance of the identified POI. The identified POI can be identified because the number of POIs within the predetermined distance is greater at the identified POI than at the other POIs. As noted above, various rules can be used to break ties. Further, other types of weighting can be used to determine the number, for example, the POIs can be weighted so that more relevant POIs count more.
Cluster selection instructions 928 then cause the processor 910 to select a set (e.g., a cluster) of the POIs within the predetermined distance of the identified POI. In other scenarios, the set can be based on the predetermined distance, for example, within a distance corresponding to a percentage of the predetermined distance.
Once the set is determined, distribution instructions 930 can cause the processor 910 to determine a horizontal spread based on vertical coordinates associated with the POIs of the set. Further, the processor 910 can be caused to determine a vertical spread based on the horizontal coordinates associated with the POIs of the set. The distribution instructions 930 can also cause the processor 910 to distribute the POIs of the set to one or more map sets based on a comparison of the horizontal spread and the vertical spread. As detailed above, the horizontal spread and the vertical spread can be used to determine a layout of the POIs in the map set. In certain embodiments, a map set is a group of the POIs that can be determined to fit within a map boundary. Based on the map sets, the computing device 900 can query a map platform for map information. The map information can include one or more maps based on the map sets. In one example, the maps can be determined by adding a border from the POIs on the edges of a map area corresponding to the map set. Further, these maps can be associated with a zoom-level. This can be determined based on the area covered by the respective maps.
As noted above, multiple iterations can be used to generate map sets for multiple sets of the POIs. Further, additional processing can be used after a map set is determined to add POIs that were determined based on the customization information but not included in the set that was distributed to one or more of the map sets. The cluster selection instructions 928 can cause the processor 910 to determine that one or more of the POIs not included in the set are within respective boundaries of the maps at the respective zoom-levels. The originally determined set and the one or more POIs can be included in an updated set.
The updated set can be reprocessed by the distribution instructions 930 to generate updated map sets. This can be accomplished by determining a second horizontal spread based on the vertical coordinates associated with the POIs of the updated set, determining a vertical spread based on the horizontal coordinates of the POIs of the updated set, and distributing the updated set of POIs based on the spreads. As such, the POIs of the updated set can be distributed to a plurality of other map sets based on a comparison of the second horizontal spread and the second vertical spread.
Then, map boundaries can be determined and generated for the map sets. The computing device 900 then requests associated maps from a map platform based on the map boundaries and/or the map sets. The maps can be incorporated into guide book information that can be presented to a user. The guide book information can be electronic and/or be in a printed format.