Patent Publication Number: US-9430206-B2

Title: Systems for downloading location-based application and methods using the same

Description:
CROSS-REFERENCE TO RELATED APPLICATION(S) 
     The present application claims priority to Taiwan Patent Application No. 100146857, filed Dec. 16, 2011; Taiwan Patent Application No. 101102596, filed Jan. 20, 2012; Taiwan Patent Application No. 101111774, filed Apr. 2, 2012; and Taiwan Patent Application No. 101125473, filed Jul. 13, 2012. These four Taiwanese patent applications are incorporated herein by reference in their entirety. 
     TECHNICAL FIELD 
     The present technology relates generally to systems for downloading location-based applications and associated apparatus and methods. In particular, several embodiments are directed to systems for downloading location-based application packages, systems for providing a location-based application service, apparatus for implementing a location-based service, or associated methods. 
     BACKGROUND 
     In recent years, demands for mobile device (e.g., a smartphone) applications (referred to as “APPs”) significantly increase when mobile devices become more and more popular. Traditionally, in order to have a customized APP, one needs to either create the APP by himself, or hire a professional programmer to do so. The former requires specific programming expertise, and the latter incurs expenses. Therefore, it is advantageous to have a convenient way to generate customized APPs with certain functions. Location-based services include, for example, providing users certain maps with some useful information, such as points of interest (POI), gas stations, or restaurants. It would be also advantageous to have a system that allows users to download the generated location-based APPs. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Many aspects of the present technology can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale. Instead, emphasis is placed on illustrating clearly the principles of the present technology. 
         FIG. 1  is a schematic diagram illustrating a system for downloading location-based APPs in accordance with embodiments of the present technology. 
         FIG. 2  is a schematic diagram illustrating a system for providing a location-based APP service in accordance with embodiments of the present technology. 
         FIG. 3  is a schematic diagram illustrating an apparatus for implementing a location-based APP service in accordance with embodiments of the present technology. 
         FIG. 4  illustrates a user interface in accordance with embodiments of the present technology. 
         FIG. 5  illustrates another user interface in accordance with embodiments of the present technology. 
         FIG. 6  is a flowchart illustrating a method for downloading location-based APPs in accordance with embodiments of the present technology. 
         FIG. 7  is a flowchart illustrating a method for providing a location-based APP service in accordance with embodiments of the present technology. 
     
    
    
     DETAILED DESCRIPTION 
     Various aspects and embodiments of the present technology will be described below. The following description provides specific details for a thorough understanding and enabling description of these embodiments. One skilled in the art will understand, however, that the present technology may be practiced without many of these details. The terminology used in the description presented below is intended to be interpreted in its broadest reasonable manner, even though it is being used in conjunction with a detailed description of certain specific embodiments of the present technology. Any terminology intended to be interpreted in any restricted manner will be overtly and specifically defined as such in this Detailed Description section. 
     Several embodiments of the present technology are described below with reference to systems for downloading location-based APPs, systems for providing a location-based APP service, apparatus for implementing a location-based APP service, and associated methods. The systems in accordance with the present technology allow users to download location-based APPs with customized functions through a user interface. Specific details are identified in the following description with reference to  FIGS. 1-7  to provide a thorough understanding of various embodiments of the present technology. Other details describing well-known structures or processes often associated with computing systems, however, are not described below to avoid unnecessarily obscuring the description of the various embodiments of the present technology. Moreover, although the following technology sets forth several embodiments of different aspects of the technology, other embodiments can have different configurations and/or different components than those described in this section. In addition, further embodiments of the present technology may be practiced without several of the details described below, while still other embodiments of the present technology may be practiced with additional details and/or features. 
     Systems for Downloading Location-Based APPs 
     Several embodiments of the present technology are directed to systems for downloading location-based APPs.  FIG. 1  is a schematic diagram illustrating a system  100  for downloading location-based APPs in accordance with embodiments of the present technology. As shown in  FIG. 1 , the system  100  can include a processor  101 , a memory  102 , a generation module  103 , a ranking module  104 , a download module  105 , a record module  106 , a calculation module  107 , a search module  108 , a location module  109 , a map module  110 , and a display module  111 . The processor  101  can be configured to execute the instructions stored in the memory  102  (e.g., instructions related to the modules  103 - 111  within the system  100 ). The system  100  can communicate with a user  10  via a user interface  10 A. As shown in  FIG. 1 , the system  100  can also communicate with a storage device  11  and a map database  12 . 
     The storage device  11  can store a plurality of customized application packages. The application packages can be associated with corresponding APPs. Further, the application packages can include information regarding how to install or use the corresponding APPs. In some embodiments, the application package can be an APK format file (for Android operating system), or an IPA format file (for iOS operating system). In other embodiments, the application packages can be in any file formats suitable for users to download and install. In some embodiments, the application packages stored in the storage device  11  can be generated by the generation module  103  of the system  100  upon requests. For example, a physical store owner may want to create a customized APP that allows store customers to interact with the store directly (e.g., making online purchases, checking-in, or providing feedback through the customized APP). The physical store owner can include a title (e.g., the store&#39;s name), an associated location (e.g., by providing a set of coordinates), images (e.g., pictures of the store, logos, or icons), or other information in the customized APP by providing the related information to the generation module  103  (e.g., via the user interface  10 A). In some embodiments, the associated location can be the store&#39;s physical location. In other embodiments, the associated location can be any location chosen by the store owner (e.g., the store owner may want to associate the customized APP with a certain location where the customers visit frequently, such as a famous POI). After receiving a request for generating a customized APP, the generation module  103  can generate (e.g., compile) and include related information in an application package, and then the generated application package can be stored in the storage device  11 , such that the user  10  (e.g., a potential customer for the physical store) can download this generated application package through the system  100 . In other embodiments, the application packages stored in the storage device  11  can be generated by other independent sources (e.g., directly uploaded by a store owner). 
     In some embodiments, the application packages can include an instant messaging (IM) function. For example, User A and User B can both download the application package AA with an IM function (e.g., allowing users to send and receive instant messages through IM servers). User A and User B can execute (e.g., install) the downloaded application package AA and then have the associated APPs ready to use. When User A and User B are both using their APPs associated with the downloaded application packages AA (either after installation or not), User A and User B can communicate with each other by their APPs&#39; IM function (e.g., through an IM server, such as the system  100  or the storage device  11 ). In other embodiments, User A can download a customized application package BB while User B can download another customized application package CC. Both customized application package BB and customized application package CC can have the IM function. When User A and User B are using their APPs associated with the application packages BB and CC (either after installation or not), User A and User B can still communicate with each other by the IM function. 
     As shown in  FIG. 1 , the system  100  can include the ranking module  104 . The ranking module  104  can be configured to assign a ranking number to each application package stored in the storage device  11 , The ranking number can be determined based on a specific factor. In some embodiments, the special factor can be a distance (e.g., 100 meters) between a user location (e.g., the current location of the user  10 , or a location input by the user  10 ) and the associated location of the application package. In other embodiments, the specific factor can be: (1) the time that the application package is generated (e.g., by the generation module  103 ); (2) the time that the application package is stored (e.g., in the storage device  11 ); (3) the number that the application package has been downloaded (e.g., this number can be recorded by the record module  106  as discussed below); (4) the number that a hyperlink associated with the application package has been accessed (e.g., the QR™ code or other hyperlinks); (5) a to associated with the application package (e.g., a service charge for generating the application package, or an advertisement fee related to the application package); and/or (6) points associated with the application package (e.g., credit points to the store owner who requests to generate an application package, or reward points for users who download the application package). 
     In some embodiments, the ranking number can be determined by a combination of different specific factors discussed above (e.g., with different weightings). The ranking number created by the ranking module  104  allows the system  100  to display the application packages in a specific order. For example, when the system  100  plans to display three application packages whose associated locations are in the same location (or within a close proximity, such as 10 meters), these three application packages can be displayed following an order based on their ranking numbers (e.g., APP 1 -APP 3  shown in  FIG. 4 ). 
     The ranking module  104  can also be configured to assign a special ranking number to at least one of the application package. The special ranking number represents higher priority over a regular ranking number (e.g., in  FIG. 4 , APP 4  has priority over APP  5 ). For example, a store owner may want to pay an additional advertisement fee to let his application package (associated with his physical store) have a better accessibility or exposure (e.g., being displayed in front of others) than other application packages in the same location (or within a close proximity). In some embodiments, the ranking module  104  can further store the assigned ranking numbers and special ranking numbers in the storage device  11 . In other embodiments, the ranking numbers can be stored in any other suitable storage devices (e.g., outside or inside the system  100 ). 
     As shown in  FIG. 1 , the system  100  can include the download module  105 . The download module  105  can be configured to allow the user  10  to download application packages via the system  100 . The download module  105  can provide the user  10  a link connected to a specific application package stored in the storage device  11 . The link can be a Hypertext Transfer Protocol (HTTP) link, a Extensible Markup Language (XML) link, a JavaScript Object Notation (JSON) link, or any other suitable links. In some embodiments, the download module  105  can provide a link displayed (e.g., by the display module  111  discussed below) at the user interface  10 A, such that the user  10  can directly download the specific application package (e.g., through the download link  404  in  FIG. 4 , or the download links  503 ,  505  in  FIG. 5 ). In some embodiments, the download module  105  can include a Hypertext Preprocessor (PHP) file, an Active Server Pages (ASP) file, a JavaServer Pages (JSP) file, a Java Runtime Environment (JRE) file, an ActiveX file, a JavaScript, or other suitable files for facilitating the download tasks. In some embodiments, after downloading, the user  10  can install the downloaded specific application package. In other embodiments, the downloaded specific application package can be executed without further installation. 
     As shown in  FIG. 1 , the system  100  can include the record module  106 . The record module  106  can be configured to count and/or record a download number indicating the number of downloads made of each application package. In some embodiments, the download numbers of the application packages can be stored in the storage device  11 . In other embodiments, the download number can be stored in any other suitable storage devices. 
     In some embodiments, the record module  106  can maintain an attribute database or a datasheet for recording information, properties, attributes, or statuses associated with each application package. For example, the attribute database can include: (1) names or titles of the application packages, (2) sets of coordinates (e.g., latitude and longitude) associated with the application packages; (3) serial identification numbers (e.g., assigned by the system  100 ) of the application packages; (4) links to associated images (e.g., indicating where the associated files are stored); (5) links for downloading the application packages (e.g., indicating where the application packages are stored); (6) the download numbers; (7) the ranking numbers assigned by the ranking module  104 ; and/or (8) fees or credits associated with the application packages (e.g., created by the calculation module  107  discussed below). In some embodiments, the attribute database or the datasheet can be stored in the storage device  11 . In other embodiments, the attribute database or the datasheet can be stored in any other suitable storage devices. 
     As shown in  FIG. 1 , the system  100  can include the calculation module  107 . The calculation module  107  can be configured to calculate fees to be charged or points to be allocated. In some embodiments, the calculation can be made based on the download numbers of the application packages. For example, the calculation module  107  can calculate service fees (e.g., a flat fee arrangement for unlimited downloads, or different rates for different numbers of downloads) for a store owner who have requested to generate a customized application package for his store. In another example, the calculation module  107  can calculate credit points for users who download a specific application package. In other embodiments, the calculation module  107  can calculate fees or credit points for application package requesters (e.g., a store owner) in accordance with an advertisement-profit-sharing arrangement (e.g., not directly related to the download numbers). 
     As shown in  FIG. 1 , the system  100  can include the search module  108 . The search module  108  can be configured to select application packages stored in the storage device  11  based on a search criterion provided by the user  10 . In some embodiments, for example, the user  10  can input the search criterion through the user interface  10 A, and the search criterion can then be transmitted to the search module  108 . The search criterion can include: (1) a distance (e.g., a distance between the current location of the user  10  and the associated location of the application package); (2) a name or a title of the application package; (3) a type of the application package (e.g., application packages associated with restaurants or supermarket); (4) ranking numbers assigned by the ranking module  104 ; (5) fees or points related to downloading the application package; and/or (6) popularity of the application package (e.g., numbers of prior downloads). In some embodiments, the search module  108  can also conduct a keyword search for application packages. For example, the keyword search can be conducted in the attribute database maintained by the record module  106 , as discussed above. In other embodiments, the search module  108  can allow the user  10  to choose the search criterion from a predetermined list (e.g., by a check box or a drop-down list) at the user interface  10 A. 
     As shown in  FIG. 1 , the system  100  can include the location module  109 . The location module  109  can be configured to receive or retrieve a current user location of the user  10 . In some embodiment, the current user location can be received from a user input (e.g., through the user interface  10 A). In other embodiments, the current user location can be retrieved from a global positioning system (GPS) device (not shown) used by the user  10 . The location module  109  can transmit the current user location to the search module  108  for further process (e.g., to calculate the distances between the current user location and the associated location of each application package). The location module  109  can also transmit the current location to the display module  111  (discussed below), such that the current user location (e.g., Location A in  FIG. 4 ) can be displayed on a map (e.g., received from the map database  12 , as discussed below). In other embodiments, the location module  109  can also be configured to receive images, titles, records, or statuses associated with the application package, and then transmit the same to the display module  111  (discussed below) or storage devices (not shown). 
     As shown in  FIG. 1 , the system  100  can include the map module  110  to communicate with the map database  12 . The map module  110  can be configured to receive map-related information from the map database  12  and provide the same (e.g., with certain edits, if appropriate) to the display module  111  (discussed below). The map database  12  can store geographic or map data related to the associated locations of the application packages. In some embodiments, the map database  12  can be a database dedicated to store geographic or map-related data. In other embodiments, the map database  12  can be a database or a storage device with multiple purposes. 
     As shown in  FIG. 1 , the system  100  can include the display module  1 . The display module  111  can be configured to provide information-to-be-displayed to the user  10 . More specifically, for example, the information-to-be-displayed can be graphically displayed at the user interface  10 A. For example, the display module  111  can provide a download link (e.g., from the download module  107  discussed above) at the user interface  10 A for the user  10  to download a selected application package (e.g., the user  10  can select an application package after conducting a search based on the search criterion as discussed above). In some embodiments, the download ink can be a hyperlink or a Quick Response code (QR™ code) associated with a corresponding application package. The display module  111  plays an important role to interact with other modules (e.g., modules  103 - 110 ) within the system  100 . For example, the display module  111  can receive the information-to-be-displayed associated with the application package from the modules  103 - 110  of the system  100 . 
     Systems for Providing a Location-Based APP Service (APP Marketplace) 
     Several embodiments of the present technology are directed to systems for providing location-based application service.  FIG. 2  is a schematic diagram illustrating a system  200  for providing a location-based APP service in accordance with embodiments of the present technology. As shown in  FIG. 2 , the system  200  can include a processor  201 , a memory  202 , a storage device  203 , a ranking module  204 , a download module  205 , a record module  206 , a calculation module  207 , a search module  208 , a location module  209 , a map module  210 , and a display module  211 . The processor  201  can be configured to execute the instructions stored in the memory  202  (e.g., instructions related to the modules  204 - 111  in the system  200 ). The system  200  can communicate with a map database  22  and a user  20  via a user interface  20 A. 
     As shown in  FIG. 2 , the system  200  can include the storage device  203  to store a plurality of customized location-based APPs or application packages. Similar to the embodiments discussed in  FIG. 1 , the application packages stored in the storage device  203  can be generated (e.g., by the generation module  103 ) upon requests or from other sources. As shown in  FIG. 2 , the system  200  can include the ranking module  204 . The ranking module  204  can be configured to assign a ranking number to each application package stored in the storage device  203 . Similar to the embodiments shown in  FIG. 1 , the ranking number can also be determined based on the specific factor (see details above). The ranking number created by the ranking module  204  allows the system  200  to display the application packages in a specific order. In some embodiments, the ranking module  204  can also be configured to assign a special ranking number to at least one of the application package. The special ranking number represents higher priority over regular ranking numbers. In some embodiments, the ranking module  204  can further store the assigned ranking numbers and special ranking numbers in the storage device  203 . In other embodiments, the assigned ranking numbers and special ranking numbers can be stored outside the system  200 . 
     As shown in  FIG. 2 , the system  200  can include the download module  205 . The download module  205  can be configured to allow the user  20  to download application packages. The download module  205  can provide the user  20  a link connected to a specific application package stored in the storage device  203 . The link can be an HTTP link, an XML link, a JSON link, or other suitable links. In some embodiments, the download module  205  can provide a link displayed (e.g., by the display module  211  discussed below) at the user interface  20 A, such that the user  20  can directly download the specific application package. In some embodiments, the download module  205  can include a PHP file, an ASP file, a JSP file, a JRE file, an ActiveX file, a JavaScript, or other suitable files to facilitate the download tasks. In some embodiments, after downloading, the user  20  can install the downloaded specific application package. In other embodiments, the downloaded specific application package can be executed without further installation. 
     As shown in  FIG. 2 , the system  200  can include the record module  206 . The record module  206  can be configured to count and/or record a download number indicating the number of downloads made for each application package. In some embodiments, the download numbers of the application packages can be stored in the storage device  203 . In other embodiments, the download number can be stored in any suitable devices outside the system  200 . In some embodiments, the record module  206  can also maintain the attribute database or the datasheet, as discussed above, for recording information or properties associated with each application package. The attribute database or the datasheet can be stored in the storage device  203 . In other embodiments, the attribute database or the datasheet can be stored in any other suitable storage devices outside the system  200 . 
     As shown in  FIG. 2 , the system  200  can include the calculation module  207 . The calculation module  207  can be configured to calculate fees to be charged or points to be allocated. In some embodiments, the calculation can be made based on the download numbers of the application packages. In other embodiments, the calculation module  207  can calculate fees or credit points for application package requesters (e.g., a store owner) in accordance with an advertisement-profit-sharing arrangement. 
     As shown in  FIG. 2 , the system  200  can include the search module  208 . The search module  208  can be configured to select application packages stored in the storage device  203  based on a search criterion provided by the user  20 . In some embodiments, for example, the user  10  can input the search criterion through the user interface  20 A, and the search criterion can then be transmitted to the search module  208 . In other embodiments, the search module  208  can also conduct a keyword search for the application packages. In some embodiments, the search module  208  can allow the user  20  to choose the search criterion from a predetermined list (e.g., by a check box or a drop-down list) at the user interface  20 A. 
     As shown in  FIG. 2 , the system  200  can include the location module  209 . The location module  209  can be configured to receive or retrieve a current user location of the user  20 . The location module  209  can further transmit the current user location to the search module  208  for further process. The location module  209  can also transmit the current location to the display module  211  (discussed below), such that the current user location (e.g., Location A in  FIG. 4 ) can be displayed on a map (e.g., received from the map database  22 , as discussed below). In other embodiments, the location module  209  can be configured to receive images, titles, records, or statuses associated with the application package, and then transmit the same to the display module  211  (discussed below) or the storage device  203 . 
     As shown in  FIG. 2 , the system  200  can include the map module  210  to communicate with the map database  22 . The map module  210  can be configured to receive map-related information from the map database  22  and provide the same (e.g., with certain edits, if appropriate) to the display module  211  (discussed below). The map database  22  can store geographic or map data related to the associated locations of the application packages. In some embodiments, the map database  22  can be a database dedicated to store geographic or map-related data. In other embodiments, the map database  22  can be a database or a storage unit with multiple purposes. 
     As shown in  FIG. 2 , the system  200  can include the display module  211 . The display module  211  can be configured to provide information-to-be-displayed to the user  20 . For example, the information-to-be-displayed can be graphically displayed at the user interface  20 A. In some embodiments, the download link can be a hyperlink or a QR™ code associated with a corresponding application package. The display module  211  also plays an important role to interact with other modules (e.g., the modules  204 - 210 ) within the system  200 . For example, the display module  211  can receive the information-to-be-displayed associated with the application package from the modules  204 - 210  of the system  200 . 
     Apparatus for Implementing a Location-Based APP Service (Mobile Devices) 
     Several embodiments of the present technology are directed to apparatus for implementing a location-based application service.  FIG. 3  is a schematic diagram illustrating an apparatus  300  for implementing a location-based APP service in accordance with embodiments of the present technology. In some embodiments, the apparatus  300  can be a smartphone, a portable device, a notebook, a personal computer, or a user end terminal. As shown in  FIG. 3 , the apparatus  300  can include a processor  301 , a memory  302 , a storage device  303 , an input device  304 , a communication device  305 , and a user interface  306 . The processor  301  can be configured to execute the instructions stored in the memory  302  (e.g., instructions related to the devices  303 - 306  in the apparatus  300 ). The apparatus  300  can communicate with a server  31  and a user  30 . 
     As shown in  FIG. 3 , the apparatus  300  can include the storage device  303  to store downloaded customized location-based APPs or application packages (e.g., downloaded from the server  31  via the communication device  305 , as discussed below). In some embodiments, the storage device  303  can also be used to store installed application packages (e.g., some application packages need to be installed to be executable). As shown in  FIG. 3 , the apparatus  300  can also include the input device  304  and the communication device  305 . In some embodiments, the input device  304  can be a keyboard, a mouse, or a writing pad. In other embodiments, the input module  304  can be a touch-screen device (e.g., a touch-screen monitor). The input device  304  can be configured to communicate with the user  30 . For example, the input device  304  can receive a user current location or a search criterion from the user  30 . The input device  304  can further transmit the received information to other devices within the apparatus  300  (e.g., to the user interface  306  for displaying), or to the server  31  through the communication device  305  (e.g. to search the application packages stored in the server  31 ). As shown in  FIG. 3 , the apparatus  300  can communicate with the server  31  through the communication device  305 . In some embodiments, the communication device  305  can communicate with the server  31  via a wireless network. The communication device  305  can also transfer the downloaded application packages to the storage device  303  via the wireless network. In some embodiments, the server  31  can store a plurality of customized location-based APPs or application packages. In other embodiments, the server  31  can have functions similar to the systems  100  or  200 , as discussed above. 
     As shown in  FIG. 3 , the apparatus  300  can include the user interface  306 . The user interface  306  can be a graphical user interface for the user  30 . In some embodiments, the user interface  306  can include a map (e.g., received from the server  31 ) with selected location-based application packages (e.g., as APP 1 - 6  shown in  FIG. 4 ). The displayed application packages can be selected from the server  31  based on the search criterion from the user  30 . Further, the user interface  306  can also provide a download link for the user  30  to download a selected application package from the server  31 . In some embodiments, the download link can be a hyperlink or a QR™ code associated with a corresponding application package. 
     User Interfaces 
       FIG. 4  illustrates a user interface  400  in accordance with embodiments of the present technology. As shown in  FIG. 4 , the user interface  400  can include a map  401  as the background. In this embodiment, Location A shown on the map  401  represents a user current location, which can be input by a user or retrieved from a GPS device or other positioning systems. Locations B, C, and D shown on the map  401  respectively represent different associated locations of the selected (e.g., based on search criteria provided by the user) application packages (e.g., APP 1 -APP 6  shown in  FIG. 4 ). Specifically, the application packages APP 1 , APP 2 , and APP 3  are located at (or within a close proximity of) Location B; the application packages APP  4  and APP  5  are located at (or within a close proximity of) Location C; and the application package APP 6  is located at (or within a close proximity of) Location D. The user interface  400  allows the user to easily understand the relative locations between the user current location and the associated locations of the selected application packages. 
     As shown in  FIG. 4 , the application packages APP 1 , APP 2 , and APP 3  located at Location B can be displayed by an order in accordance with the corresponding ranking numbers. The ranking numbers can be determined by the specific factor, as discussed above. In this embodiment, for example, the application package APP 1  is displayed prior than the application packages APP 2  and APP 3  because the application package APP 1  has an earlier generation date. The specific factor that actually decides the displaying order can also be shown next to the application packages (not shown in FIG.  4 ). In other embodiments, the application packages APP 1 , APP 2 , and APP 3  can be displayed based on different ranking numbers determined by other specific factors. 
     As shown in  FIG. 4 , the application packages APP 4  and APP 5  located at Location C can be displayed by an order in accordance with the corresponding special ranking number. In this embodiment, the application package APP 4  has been assigned a special ranking number that represents higher priority over a regular ranking number of the application package APP 5 . Thus, the application package APP 4  can be displayed first (e.g., in front of the application package APP 5 ). In other embodiments, the special ranking number can have different levels, such as a tier-1 special ranking number and a tier-2 special ranking number. In order to receive a special ranking number, those who request to generate the application packages (e.g., the store owner discussed above) can pay additional fee to purchase this special status. This special ranking status can be displayed next to the application package with the special ranking number (not shown in  FIG. 5 ). For example, a special ranking description (such as, “Server Recommended”) can be displayed next to the application package. The special ranking description can include any suitable languages that can be used to indicate the special ranking status. 
     As shown in  FIG. 4 , the application package APP 6  located at Location D can be displayed with an icon  402 , an APP description  403  and a download link  404 . The icon  402  can include any suitable images, pictures, or symbols (e.g., trademarks) associated with the application package (e.g., provided by the application package requester as discussed above). In this embodiment, for example, the icon  402  can include a picture of the physical store associated with the application package APP 6 . In some embodiments, the size of the icon  402  can vary depending on certain popularity factors, such as download numbers or check-in numbers (e.g., some of the APP 6  users may check-in at Location D before). In other embodiments, the size of the APP description  403  and the download link  404  can also vary depending similar factors. 
     As shown in  FIG. 4 , the APP description  403  can include a description or information related to the application package APP 6 . In this embodiment, for example, the APP description  403  can include the number of previous downloads of the application package APP 6 . In other embodiments, the APP description  403  can include information related to the application package APP 6 , such as a store name, a store address, store hours, the APP status (e.g., another user is downing the application package APP 6 ; or another user is opening, activating, installing, or using the APP associated with the application package APP 6 ), check-in numbers, or any other information that can be stored in the attribute database discussed above. As shown in  FIG. 4 , the download link  404  allows the user to download the application package APP 6  directly. 
       FIG. 5  illustrates another user interface  500  in accordance with embodiments of the present technology. As shown in  FIG. 5 , the user interface  500  can include a three-dimensional map  501  as the background. The application packages APP 7  and APP 8  are associated with Location E and Location F respectively. The application packages APP 7  and APP 8  can be displayed respectively at Location E and Location F on the three-dimensional map  501 . The application package APP 7  can include an APP descriptions  502  and a download link  503 , while the application package APP 8  can include an APP descriptions  504  and a download link  505 . The APP descriptions  502 ,  504  can have similar arrangement as the APP description  403  as discussed above, while the download links  503 ,  505  can have functions similar to the download link  404  as discussed above. 
     Associated Methods 
       FIG. 6  is a flowchart illustrating a method  600  for downloading location-based APP in accordance with embodiments of the present technology. As shown in  FIG. 6 , the method  600  can start at block  601  by communicating with a database (e.g., the storage device  11  in  FIG. 1 ) storing a plurality of application packages (e.g., APP 1 -APP 8 ). Each application package stored in the database can have an associated location (e.g., Location B is the associated location of the application package APP 1 , as shown in  FIG. 4 ). As discussed above, for example, the associated location can be a store&#39;s physical location (e.g., when the application package is generated for the store) or any location chosen by the store owner (e.g., the store owner may want to associate his customized APP with a certain location where the customers visit frequently). 
     The method  600  continues at block  602  by receiving a search criterion (e.g., a distance between a user and the association location of the application package) from a user via a user interface (e.g., the input device  304  discussed in  FIG. 3 ). The method  600  can further continue at block  603  by selecting the application packages based on the search criterion (e.g., through the search module  108  or  208 ). The method  600  then continues at block  604  by displaying at least one selected application package on a map (e.g., received from the map database  12  or  22  by the map module  110  or  210 ) through the user interface (e.g., the user interface  400  or  500  shown in  FIGS. 4 and 5 ). The selected application packages (e.g., APP 1 -APP 6  shown in  FIG. 4 ) are positioned on the map (e.g., the map  401  in  FIG. 4  or the three-dimensional map  501  in  FIG. 5 ) based on corresponding application package locations (e.g., Location B, C, and D shown in  FIG. 4 ). The method  600  can then continue at block  605  by allowing the user to download the selected application package through the user interface. For example, the user can download the selected application package through a download link (e.g., the download link  404 ,  503 , or  505  shown in  FIGS. 4 and 5 ). 
     In some embodiments, the method  600  can further include generating the application package in response to a request (e.g., made by a store owner as discussed above). The method  600  can further include receiving and displaying an image (e.g., the picture of the store), a title (e.g., the store name), a record (e.g., the download number), or an APP status (e.g., there is another user downloading the application package) associated with the selected application package on the map based on the corresponding application package location. In some embodiments, the method  600  can further include recording a download number related to each selected application package (e.g., by the record module  106  or  206 ), and calculating a fee to be charged or points to be allocated based on the download number (e.g., by the calculation module  107  or  207 ). In other embodiments, the method  600  can further include assigning a ranking number (e.g., assigned by the ranking module  104  or  204 ) to each application package based on a specific factor (as discussed above), and assigning a special ranking number (having priority over regular ranking numbers) to at least one of the application package. 
       FIG. 7  is a flowchart illustrating a method  700  for providing a location-based APP service in accordance with embodiments of the present technology. As shown in  FIG. 7 , the method  700  can start at block  701  by storing a plurality of application packages associated with a plurality of application locations in a database (e.g., the storage device  11 ). The method  700  can continue at block  702  by allowing a user to select the plurality of application packages based on a user location (e.g., received from the user or retrieved from a GPS device) and a search criterion (e.g., received from the user via the input device  306 ). The method  700  can further continue at block  703  by graphically displaying each of the selected application packages on a map based on the corresponding application package locations (e.g.,  FIG. 4 or 5 ). The method  700  can then continue at block  704  by allowing the user to download the selected application packages (e.g., through the download link  404 ,  503 , or  505 ). 
     From the foregoing, it will be appreciated that specific embodiments have been described herein for purposes of illustration, but that various modifications may be made without deviating from the spirit and scope of the present technology. Moreover, aspects described in the context of particular embodiments may be combined or eliminated in other embodiments. Further, although advantages associated with certain embodiments have been described in the context of those embodiments, other embodiments may also exhibit such advantages, and not all embodiments need necessarily exhibit such advantages to fall within the scope of the present technology. 
     Unless the context clearly requires otherwise, throughout the description and the claims, the words “comprise,” “comprising,” and the like are to be construed in an inclusive sense (i.e., to say, in the sense of “including, but not limited to”), as opposed to an exclusive or exhaustive sense. Additionally, the words “herein,” “above,” “below,” and words of similar import, when used in this application, refer to this application as a whole and not to any particular portions of this application. Where the context permits, words in the above Detailed Description using the singular or plural number may also include the plural or singular number respectively. The word “or,” in reference to a list of two or more items, covers all of the following interpretations of the word: any of the items in the list, all of the items in the list, and any combination of the items in the list. 
     The above Detailed Description of examples of the invention is not intended to be exhaustive or to limit the invention to the precise form disclosed above. While specific examples for the invention are described above for illustrative purposes, various equivalent modifications are possible within the scope of the invention, as those skilled in the relevant art will recognize. While processes or blocks are presented in a given order in this application, alternative implementations may perform routines having steps performed in a different order, or employ systems having blocks in a different order. Some processes or blocks may be deleted, moved, added, subdivided, combined, and/or modified to provide alternative or sub-combinations. Also, while processes or blocks are at times shown as being performed in series, these processes or blocks may instead be performed or implemented in parallel, or may be performed at different times. Further any specific numbers noted herein are only examples. It is understood that alternative implementations may employ differing values or ranges. 
     While the above description describes certain examples of the invention, and describes the best mode contemplated, no matter how detailed the above appears in text, the present technology can be practiced in many ways. Details of the system may vary considerably in its specific implementation, while still being encompassed by the present technology disclosed herein. As noted above, particular terminology used when describing certain features or aspects of the present technology should not be taken to imply that the terminology is being redefined herein to be restricted to any specific characteristics, features, or aspects of the present technology with which that terminology is associated. In general, the terms used in the following claims should not be construed to limit the present technology to the specific examples disclosed in the specification, unless the above Detailed Description section explicitly defines such terms. Accordingly, the actual scope of the present technology encompasses not only the disclosed examples, but also all equivalent ways of practicing or implementing the invention under the claims.