User contribution based mapping system and method

A computer implemented user contribution method is provided. The method includes receiving identifying information from a plurality of users and receiving from the plurality of users indications of one or more geographic areas. A quality value of the one or more geographic areas is determined based on the indications of the one or more geographic areas from the plurality of users, and the quality value is transmitted to one or more of the plurality of users. The present invention further provides a user contribution based mapping system.

BACKGROUND

As increasingly unfettered mobility has become a normal part of modern life, people frequently desire to determine a quality of a particular travel destination. They may want to know typical traffic conditions of a particular road, whether a particular neighborhood is safe and accommodating to children, or whether a particular area is more residential or commercial in nature. Someone may desire this information for their own direct benefit, or alternatively, for use in supervising travel of others who they are responsible for, such as their children or employees. Teachers or parents may require that children for whom they are responsible avoid certain locations or adhere to certain pre-defined routes on their way to and from school or other destinations. Employers, in an effort to enhance worker productivity, may wish to enforce schedules defining where employees should be at particular times during the work day.

Locatable mobile devices such as mobile telephones, cellular-enabled personal computers and GPS systems provide reliable means to determine the location of a user. It would be desirable to provide effective methods for determining a quality of a particular geographic area and for establishing and maintaining mobility control over a user of a locatable mobile device.

SUMMARY

The present invention provides a computer implemented user contribution method. The method includes receiving identifying information from a plurality of users and receiving from the plurality of users indications of one or more geographic areas. A quality value of the one or more geographic areas is determined based on the indications of one or more geographic areas from the plurality of users, and the quality value is transmitted to one or more of the plurality of users.

The present invention further provides a user contribution based mapping system including a computing device with a memory having instructions operable to enable the computing device to perform a procedure. The procedure includes receiving identifying information from at least a first user and a second user and receiving from at least the first user and the second user indications of at least one geographic area. The procedure further includes determining a quality value of the at least one geographic area based on the indications of the at least one geographic area and transmitting the quality value to a third user.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT(S)

Certain terminology is used in the following description for convenience only and is not limiting. The words “a” and “one” are defined as including one or more of the referenced item unless specifically stated otherwise. This terminology includes the words above specifically mentioned, derivatives thereof, and words of similar import. The phrase “at least one” followed by a list of two or more items, such as A, B, or C, means any individual one of A, B or C as well as any combination thereof.

The preferred embodiments of the present invention are described below with reference to the drawing figures where like numerals represent like elements throughout.

Referring toFIG. 1, a schematic illustration is shown of an exemplary operating environment10in which a preferred system for implementing user contribution based mapping in the form of a location server12may be used. The location server12includes one or more computing devices and one or more memory devices, which computing devices and memory devices may be integrally constructed or connected in any suitable manner, for example via a network. The location server12provides a platform which enables a location application program interface (API)16, a management API18, a mapping engine20, and a rewards engine22.

The management API18is configured to receive identifying information from a plurality of contributing users through respective contributing user clients30, such as personal computers, mobile telephone devices, or global positioning system (GPS) enabled devices, via a network connection, which network connection is preferably an Internet network connection. The identifying information of each user preferably includes a plurality of user identifying criteria including one or more of a user address, a user age, a user gender, and a user occupation. Alternatively, the identifying information can include any suitable user identifying criteria. The management API18is preferably configured to establish a plurality of contributing user accounts using the identifying information of the contributing users.

The management API18is further configured to receive from each of the plurality of contributing users via respective contributing user clients30an indication of one or more geographic areas. The indication of one or more geographic areas preferably includes one or more geographic areas and a rating of the one or more geographic areas. The one or more geographic areas may be designated by a user as an address, a plurality of addresses, a road or street, a plurality of roads or streets bounding an area, one or more neighborhoods or landmarks, or an area surrounding or in proximity to an address, a neighborhood or a landmark. The rating may include an indication that the one or more geographic areas are residential or commercial. The rating may alternatively include an indication of a perceived or actual level of safety of the one or more geographic areas. The rating is preferably received through the management API18as a scaled numeric indication within a predetermined range. For example, a contributing user may rate a particular area on a numeric scale from 1 to 5 for perceived safety, perceived concentration of residences, perceived concentration of commercial establishments, perceived vehicular congestion, or perceived availability of sidewalks.

The mapping engine20is configured to determine a quality value of the one or more geographic areas based on the indication of the one or more geographic areas from the plurality of contributing users. Preferably the quality value is determined as an average of the ratings received from the plurality of contributing users for an indicated geographic area. For example, if for a particular geographic area the management API18receives ratings from three different contributing users, the mapping engine20can average the ratings of the three users to generate a quality value for the particular geographic area. The mapping engine20preferably generates a map including one or more geographic areas and the determined quality values associated with each of the one or more geographic areas based on the indications received from a plurality of contributing users. The quality value of the one or more geographic areas is transmitted, preferably in the form of a map, via the management API18to one or more of the plurality of contributing users. The one or more of the plurality of users to whom a quality value of a particular geographic area is transmitted need not to have provided an indication of the particular geographic area for which the quality value is determined, but may have provided an indication of another geographic area. The quality value of the one or more geographic areas may further be transmitted to a user who did not contribute any indication of a geographic area. In such manner a user may benefit from the impressions of other users regarding a particular geographic area.

The mapping engine20preferably further determines the quality value based on the plurality of user identifying criteria received from each of the plurality of contributing users. The management API18is configured to receive an indication of one or more preferred user identifying criteria from a user who desires to receive a quality value for one or more geographic areas. The mapping engine20can thereafter determine the quality value of the one or more geographic areas based on the indication of the one or more geographic areas received from those of the plurality of users corresponding to the one or more preferred identifying criteria. For example, an indication of a preferred user identifying criterion received from a user may include a preferred user age group of 16-24 years in age. In such example, the mapping engine20uses the indication of one or more geographic areas received from ones of the plurality of users corresponding to the age group of 16-24 years to determine the quality value. In another example, an indication of a preferred identifying criterion may include a designated neighborhood, wherein the mapping engine20uses the indication of one or more geographic areas received from ones of the plurality of users living in the designated neighborhood to determine the quality value.

The management API18is preferably further configured to establish an overseer user account using identifying information of an overseeing user, and a subject user account using identifying information of a subject user, associated with a subject user mobile device40, whom the overseeing user desires to track. The location server12is configured to receive the identifying information of the overseeing user and subject user through the management API18from an overseer user client32operated by the overseeing user, such as a personal computer, mobile telephone device, or global positioning system (GPS) enabled device, via a network connection, which network connection is preferably an Internet network connection. As set forth in this description, an overseeing user may include a person, for example a parent, guardian, or employer of a subject user. Alternatively, the overseeing user may include a non-person, for example a computing device configured to implement oversight requirements of a parent, guardian or employer of a subject user, or configured to enforce rules of a game in which a subject user is participating. The overseeing user is preferably a contributing user, and accordingly, the overseer user client32and contributing user client30are preferably a single user client. Alternatively, the overseeing user need not be a contributing user.

The received identifying information of the subject user and overseeing user may be personal and/or specific to a mobile device used by the subject user or overseer user. The received subject user identifying information preferably includes one or more of the name of the subject user, a telephone number associated with the subject user mobile device40, a telecommunication carrier identifier, for example an account number, associated with the subject user mobile device40used to establish a connection with a telecommunication carrier providing service for the subject user mobile device40, and a device-specific identifier of the subject user mobile device40. A device-specific identifier, such as a MAC address, is required for embodiments of the invention in which the subject user mobile device40is not associated with any telecommunication carrier, for example a stand-alone GPS device not requiring telecommunication carrier service. Similarly, the received overseeing user identifying information preferably includes one or more of the name of the overseer user, a telephone number associated with a mobile device used by the overseer user, a telecommunication carrier identifier, and a device-specific identifier of an overseer user's mobile device.

The management API18preferably provides an interface to the overseer user through a client application running on the overseer user client32, an interface to the contributing user through a client application running on the contributing user client30, and an interface to the subject user through a client application running on the subject user mobile device40. Alternatively, the overseer user client32and contributing user client30may be provided as a single user client running one or more client applications. The client application or applications preferably include a web client application, WAP client application, short message service (SMS) application, interactive voice response (IVR) application or other suitable client application, which client applications may include firmware or software downloadable to the subject user mobile device40, the overseer user client32, or the contributing user client30.

As indicated above, the mapping engine20preferably generates a map including one or more geographic areas and the quality values associated with each of the one or more geographic areas. A quality value can be generated based on one or more preferred contributing user identifying criteria provided by the overseeing user through the overseer user client32. The map which includes one or more geographic areas and quality values associated with each of the one or more geographic areas is transmitted to the overseer user client32via the management API18.

The location server12is further configured to receive via the management API18an indication of one or more geographic areas from the overseer user client32, the one or more geographic areas preferably corresponding to areas which the subject user is permitted to travel or not permitted to travel by the overseeing user. The location server12is preferably configured to receive information including one or more rules sets from the overseer user client32defining the desired behavior of the subject user with respect to the one or more geographic areas and providing indications of periods of time when the desired behaviors are applicable to the travel of the subject user. The location server12is further configured to transmit information to the subject user mobile device40, including the geographic areas, rules sets, and periods of time, to provide the subject user with notification of the required travel behaviors.

The indication of one or more geographic areas received from the overseeing user client32by the location server12preferably includes an indication of a predetermined range of the quality value, which quality value as described above is determined based on the indications of one or more geographic areas received from the plurality of contributing users through the contributing user clients30. The indication of one or more geographic areas received from the overseeing user client32preferably further includes an indication of whether the geographic areas corresponding to quality values within the predetermined range correspond to areas within which the subject user is allowed to travel or not allowed to travel. For example, if a quality value is generated on a scale of 1 to 5 by the mapping engine20based on indications from contributing users, an overseeing user may provide to the location server12an indication of a predetermined range of 4 to 5 and designate geographic areas having quality values determined to be within the predetermined range of 4 to 5 as not allowable for a subject user to travel within.

The indication of the predetermined range is stored in a database configured via the mapping engine20. Preferably, the quality values of the one or more geographic areas are compared with the predetermined range to determine whether the quality values fall within the predetermined range. The location server12is preferably configured to receive via the location API16location information of the subject user mobile device40from a location based service (LBS) infrastructure50of a telecommunication carrier providing telecommunication service to the subject user mobile device40. The LBS infrastructure50preferably receives the location information or data required to generate the location information from the subject user mobile device40. Alternatively, the location server12may receive location information of the subject user mobile device40directly from the subject user mobile device40, especially in instances where the mobile device40is a stand-alone device. Alternatively, the location server may receive location information from any suitable source in contact with the subject user mobile device40. Preferably, the LBS infrastructure50or subject user mobile device40transmits location information to the location server12in the form of latitude and longitude of the subject user mobile device40, which latitude and longitude may be determined via known methods such as tower-based or satellite (GPS) triangulation.

At the option of an overseeing user, if the location information received via the location API16indicates that the subject user mobile device40has entered a geographic area corresponding to a quality value falling within the predetermined range, an indication is transmitted to the overseeing user through the overseer user client32via the management API18notifying the overseeing user of the position of the subject user mobile device40. Alternatively at the option of an overseeing user, an indication is transmitted to the overseeing user if the location information indicates that the subject user mobile device40has exited a geographic area corresponding to a quality value falling within the predetermined range. Alternatively at the option of an overseeing user, an indication is transmitted to the overseeing user if the location information indicates that the subject user mobile device40has failed to enter or exit a geographic area corresponding to a quality value falling within the predetermined range. Moreover, at the option of an overseeing user, a warning is transmitted to the subject user mobile device40via the management API18if the location information indicates that the subject user mobile device40has entered or exited, or failed to enter or exit, a geographic area corresponding to a quality value falling within the predetermined range. Preferably, a map is transmitted to the subject user mobile device40via the management API18displaying the one or more geographic areas and displaying in a suitable manner whether the quality value of the one or more geographic areas falls within the predetermined range provided by the overseeing user. The map transmitted to the subject user mobile device40preferably indicates whether the one or more geographic areas are designated by the overseer user as allowable or not allowable for travel by the subject user based on whether the quality value of the one or more geographic areas falls within the predetermined range. Accordingly, an overseeing user through the overseeing user client32can communicate a desire to the subject user through the subject user mobile device40via the management API18that the subject user is not permitted to enter or not permitted to leave a geographic area corresponding to a quality value falling within the predetermined range.

The management API18is further configured to transmit an instruction to the reward engine22to generate an indication of a reward if the location information indicates that the subject user mobile device40has entered or exited, or failed to enter or exit, depending on preference of an overseeing user, a geographic area corresponding to a quality value falling within the predetermined range. The indication of a reward preferably includes an indication of permissions granted to or revoked from the subject user. Granted or revoked permissions preferably include modifications to the indication of the predetermined range of the quality value or changes in communication permissions, for example increases or decreases in a number of permitted sent or received SMS messages, or duration of telephone calls made by the subject user mobile device40. Coinciding with transmitting indications of communication permissions granted to or revoked from the subject user, the management API18preferably transmits instructions to a communications infrastructure52of a telecommunications carrier to implement changes in communication permissions associated with the subject user mobile device40consistent with the indication of a reward. The indication of a reward may alternatively include digital goods awarded to the subject user such as mobile device ringtones and application content, or indications of redeemable value such as a coupons or gift certificate codes which may be redeemed at predetermined establishments, for example online or physical stores. The reward engine22may be configured to automously generate and transmit through the management API18digital goods or indications of redeemable value to the subject user mobile device40, or alternatively, the management API18may request and receive digital goods or indications of redeemable value from one or more remote value servers56configured to generate and transmit digital goods or indications of redeemable value.

The location server12via the management API18may alternatively transmit an indication to a remote value server56to transmit value from or to a first account associated with the overseer user to or from a second account associated with the subject user if the location information indicates that the subject user mobile device40has entered or exited, or failed to enter or exit, depending on preferences of an overseeing user, a geographic area corresponding to a quality value falling within the predetermined range. The remote value server56in such instance may include a banking server of a bank, or alternatively, a server of another monetary or non-monetary value managing entity, for example a server managing store credit, store coupon distribution, or digital goods distribution. The indication of a reward transmitted to the subject user mobile device40may include an indication of value transferred from or to the account associated with the subject user or an indication of redeemable value such as a coupon or gift certificate code.

Referring toFIG. 2, a plan view is shown of an example city streetscape60in which the system including the location server12is implemented. The streetscape60includes city blocks62separated by streets64permitting travel of vehicles66. Various structures are provided on the city blocks62including homes68, commercial establishments70, playgrounds72, a school74, and a library76. In this example, the location server12receives from a plurality of users through the management API18indications of geographic areas80,82,84,86including ratings. The geographic areas80,82,84,86correspond respectively to a commercial establishment70, a city block62, a home68, and a neighborhood including homes68and a school74. The indications of the geographic areas80,82,84,86are preferably received from the contributing user clients32as an indication of an address, a rating for the address, and a manner of associating a geographic area with the address, wherein the management API18provides the contributing user clients32with a plurality of predetermined selectable manners of associating a geographic area with a rated address.

A first preferred user-selectable manner in which a geographic area is to be associated with a rated address includes defining the geographic area by a radius extending from an approximate center of a rated address, as shown for example by the first geographic area80, which is a circular area having center at an approximate center of the property of the underlying commercial establishment70. A second preferred user-selectable manner in which a geographic area is to be associated with a rated address includes defining an area by a perimeter of a block62on which the rated address is located, as shown for example by the second geographic area82. A third preferred user-selectable manner in which an area is to be associated with a rated address includes defining an area by a perimeter of a property corresponding to the entered address or a structure on the property, as shown for example by the third geographic area84. A fourth preferred user-selectable manner in which an area is to be associated with a rated address includes defining an area by a predetermined neighborhood boundary within which the address is located, as shown for example by the fourth geographic area86. In addition to receiving indications of geographic areas through designation of addresses, the indications of the geographic areas may be received as rated streets, neighborhoods, cities or any suitably definable region. The mapping engine20is preferably configured to use stored streetscape data to generate a geographic area based on the rated address and the selected manner in which a geographic area is to be associated with the rated address.

The mapping engine20determines a quality value for each of the geographic areas80,82,84,86based on ratings for those geographic areas received from a plurality of contributing users through the contributing user clients30. The mapping engine20is preferably further configured to determine a quality value for a particular geographic area based on ratings received from contributing users which correspond to a plurality of dissimilar geographic areas. For example, if one contributing user provides a rating for the school74, another contributing user provides a rating for a street64adjacent to the school74, and another contributing user provides a rating for the neighborhood86in which the school74is located, the mapping engine20may use the three ratings, preferably using a suitable weighted averaging technique, to determine the quality value for the neighborhood86.

The mapping engine20is further preferably configured to divide a particular region into geographic areas of predetermined dimension and to determine a quality value for each of the geographic areas in the particular region based on indications of geographic areas received from contributing users through contributing user clients30. For example, in the streetscape60, the mapping engine20may determine a quality value for each of the city blocks62or each of the streets64. Referring toFIG. 3, the mapping engine20may alternatively divide the streetscape60into neighborhoods86,88,90,92and determine the quality value of each of the neighborhoods86,88,90,92. The management API18can receive an indication of a desired predetermined range of the quality value from an overseeing user through an overseer user client32. The management API18can further transmit an indication to the overseeing user via the overseer user client32if the location information indicates that the subject user mobile device40has entered or exited, or alternatively failed to enter or exit, depending on a preference of the overseeing user, ones of the neighborhoods86,88,90,92corresponding to a quality value falling within the indicated predetermined range. The management API18further transmits an indication to the subject user mobile device40and the overseer user client32of the quality values of each of the neighborhoods86,88,90,92and an indication of which of the neighborhoods86,88,90,92correspond to a quality value falling within the predetermined range.

Referring toFIG. 4, a computer implemented user contribution method100according to a preferred embodiment of the present invention is shown. The method includes receiving identifying information from a plurality of users (step102) and receiving from the plurality of users indications of one or more geographic areas (step104). A quality value of the one or more geographic areas is determined based on the indications of one or more geographic areas from the plurality of users (step106), and the quality value is transmitted to one or more of the plurality of users (step108).

While the preferred embodiments of the invention have been described in detail above, the invention is not limited to the specific embodiments described above, which should be considered as merely exemplary. Further modifications and extensions of the present invention may be developed, and all such modifications are deemed to be within the scope of the present invention as defined by the appended claims.