A non-transitory computer-readable storage medium storing computer program instructions executable by a processor of an online computing system to perform operations for routing electronic communications to computing devices based on real-time GPS location data accessed from an external source, the operations comprising:
- continuously receiving, each time each user, of a plurality of users, checks into a venue or publicly posts a status update from a location, real-time GPS location data from each of a plurality of computing device, each computing device associated with a respective user;
- continuously analyzing the real-time GPS location data to generate, from the real-time GPS location data, a profile for each user, each profile including data comprising specific venues that the user has visited, a number of times the user has visited each specific venue of the specific venues, date, time and duration of each visit to each specific venue, a category of each specific venue, and one or more map scales;
- continuously analyzing the profile data for each user to generate and update a list of users knowledgeable about a first category of venue at a particular map scale, by performing operations comprising:
- assigning points to a user based on a number and frequency of visits to one or more venues in the first category of venue;
- identifying map scales corresponding to the visits to the one or more venues in the first category of venue and assigning points to the user based on the identified map scales corresponding to the particular map scale;
- generating a total score for the user based on the assigned points to the user;
- and
- adding the user to the list of users knowledgeable upon determining that the total score for the user exceeds a threshold score;
- receiving a query from a first computing device;
- routing the query, in real time by the online computing system, to one or more of the plurality of computing devices by performing operations comprising:
- analyzing the query to determine a category of venue associated with the query and map scale based on a scale of map displayed on the first computing device by translating an area of interest shown on the map displayed on the first computing device to a latitude and longitude and a radius for the map scale;
- determining that the category of venue and map scale correspond to the first category at the particular map scale;
- and
- transmitting, to each computing device associated with each user in the list of users knowledgeable about the first category of venue at the particular map scale, the received query from the first computing device;
- receiving, over a network, a response to the query about the venue from each of the computing devices associated with a subset of users in the list of users;
- causing display, in real time on a user interface of the first computing device, of the response to the query from each of the computing devices associated with the subset of users in the list of users, wherein causing display comprises:
- determining the scale of the map displayed on the first computing device;
- accessing a plurality of annotations associated with coordinates corresponding to the scale of the map;
- determining that first and second annotations of the plurality of annotations overlap each other by a predetermined percentage;
- and
- in response to determining that first and second annotations of the plurality of annotations overlap each other by the predetermined percentage, combining the first and second annotations into a first cluster, such that the first and second annotations are presented as a single annotation comprising the first cluster on the map displayed on the first computing device;
- and
- updating, by the online computing system, the total score for each user of the subset of users based on the response received from the computing device associated with each user of the subset of users.