Title:
MOBILE PHONE SYSTEM AND METHOD FOR SELF-CADDY
Kind Code:
A1


Abstract:
A mobile phone incorporates a positioning system to calculate a user's distance from a golf hole. Based on the distance, the mobile phone recommends a golf club to use.



Inventors:
Nguyen, Frank T. (Saratoga, CA, US)
Application Number:
11/845769
Publication Date:
03/06/2008
Filing Date:
08/27/2007
Primary Class:
International Classes:
A63B57/00
View Patent Images:
Related US Applications:
20090270192Tip Plate for a Billiards CueOctober, 2009Titus et al.
20080125235Non-spherical billiard ballMay, 2008Robledo et al.
20080096681Agent To Remove Paint, Lacquer, Glue, Plastic Or Similar From Objects And The Use Of ItApril, 2008Hansen
20090124417Dual Core Golf Ball having Negative-Hardness-Gradient Thermoplastic Inner Core and Shallow Positive-Hardness-Gradient Thermoset Outer Core LayerMay, 2009Sullivan et al.
20080153632Method and apparatus for ball kicking practiceJune, 2008Flores et al.
20050181885Apparatus For Practicing The Golf Putting StrokeAugust, 2005Yamanaka
20050119063Golf stroke training deviceJune, 2005Tupman et al.
20050187031Golf gripAugust, 2005Kwitek
20050153799Sports equipment stick with truss constructionJuly, 2005Rigoli
20080161137Golf teeJuly, 2008Noa
20040043841Basketball training aidMarch, 2004Williams



Primary Examiner:
GALKA, LAWRENCE STEFAN
Attorney, Agent or Firm:
Frank Nguyen (San Jose, CA, US)
Claims:
What is claimed is:

1. A method, comprising: determining a stroke location of a golfer using global positioning system data received by a mobile phone carried by the golfer; determining a hole location; calculating a difference between the two determined locations; determining a club to use based on the difference; and presenting the determination of club.

2. The method of claim 1, wherein the determining the hole location comprises: receiving golf course data including hole locations; and selecting a hole location, by a user's selection or by automatic hole detection algorithm, to the determined stroke location.

3. The method of claim 2, wherein the receiving golf course data comprises: transmitting a request from a mobile phone to a server; and receiving the golf course data from the server.

4. The method of claim 1, wherein the determining the stroke location comprises: determining a location of a mobile phone carried by the golfer.

5. The method of claim 1, further comprising storing round play data.

6. The method of claim 5, wherein the determining the club comprises: looking up clubs and associated average range for the golfer from stored round play data; and selecting the club having an average range closest to the calculated difference.

7. The method of claim 5, wherein the determining the club comprises: looking up clubs and associated distance to hole when used based on stored round play data; and selecting the club having the associated distance to hole closest to the calculated difference.

8. The method of claim 5, further comprising displaying round play data overlaid on a map.

9. The method of claim 1, wherein the determining the club comprises: looking up clubs and associated preset distances; and selecting the club having the associated preset distance closest to the calculated difference.

10. A system, comprising: means for determining a stroke location of a golfer using global positioning system data received by a mobile phone carried by the golfer; means for determining a hole location; means for calculating a difference between the two determined locations; means for determining a club to use based on the difference; and means for presenting the determination of club.

11. A computer-readable medium having stored thereon a program that causes a computer to execute a method, the method comprising: determining a stroke location of a golfer using global positioning system data received by a mobile phone carried by the golfer; determining a hole location; calculating a difference between the two determined locations; determining a club to use based on the difference; and presenting the determination of club.

12. A mobile phone, comprising: a global positioning system chipset for determining a stroke location of a golfer; a hole engine for determining a hole location; a distance engine, communicatively coupled to the chipset and the hole engine, for calculating a difference between the two determined locations; a club recommendation engine, communicatively coupled to the distance engine, for determining a club to use based on the difference; and a club presentation engine, communicatively coupled to the club recommendation engine, for presenting the determination of club.

13. The system of claim 12, further comprising a golf course engine for receiving golf course data including hole locations; and wherein the hole engine selects a hole location, by a user's selection or by an automatic hole detection algorithm, to the determined stroke location.

14. The system of claim 13, wherein the golf course engine transmits a request from a mobile phone to a server; and receives the golf course data from the server.

15. The system of claim 12, wherein the GPS chipset determines the stroke location by determining the location of the mobile phone, which is carried by the golfer.

16. The system of claim 12, further comprising a storage engine for storing round play data.

17. The system of claim 16, wherein the club recommendation engine determines the club by looking up clubs and associated average range for the golfer from stored round play data; and selecting the club having an average range closest to the calculated difference.

18. The system of claim 16, wherein the club recommendation engine determine the club by looking up clubs and associated distance to hole when used based on stored round play data; and selecting the club having the associated distance to hole closest to the calculated difference.

19. The system of claim 16, further comprising a map engine for displaying round play data overlaid on a map.

20. The system of claim 12, wherein the club recommendation engine determines the club by looking up clubs and associated preset distances; and selecting the club having the associated preset distance closest to the calculated difference.

21. A method, comprising: using a global positioning system chipset in a mobile phone to determine a golf course hole location; and transmitting the golf course hole location to a database for storage so that other users can access the golf course hole location.

Description:

PRIORITY CLAIM TO RELATED APPLICATION

This application claims priority of and incorporates by reference U.S. Patent Application No. 60/824,277 filed Aug. 31, 2006 entitled “GPS-Enabled Mobile Phone Application System for Golfers to Self-Caddy,” by inventor Frank Nguyen.

TECHNICAL FIELD

This invention relates generally to mobile phones, and more particularly, but not exclusively, provides a system and method to enable golfers to self-caddy using a mobile phone.

BACKGROUND

Golfing requires precision execution of every stroke play. Reading the accurate yardage of every stroke, selecting the right club for play based on one's ability and statistics are essential for a golfer. Some of these critical decisions or help come from a golfer's assistant, such as a caddie. In reality, a caddie is only available for tour professional players or at expensive golf clubs. In most cases, golfers rely on themselves.

Accordingly, a new system and method are needed that enable self-caddying.

SUMMARY

Mobile phones have become more of a Personal Digital Assistant (PDA) for the average person, performing more advanced tasks than just simply making and receiving phone calls. Among the new advanced technologies enabled for mobile phones is built-in GPS (Global Positioning System) chipset into the mobile phone. Combining this GPS capability with other available technology in the mobile device such as Internet connection via mobile wireless network, digitized global map, and the community-driven Internet website, such a mobile phone software application can be developed to help thousands of global golfers to improve their game on and off the golf course. The key is the ability to pin point the exact location of every golf ball at rest during the game play, relatively to the digitized location (longitude and latitude) of every hole of the golf course. The data then can be stored, analyzed, and utilized intelligently by the system to enable golfers to improve their game.

In an embodiment, a method comprises: determining a stroke location of a golfer using global positioning system data received by a mobile phone carried by the golfer; determining a hole location; calculating a difference between the two determined locations; determining a club to use based on the difference; and presenting the determination of club.

In an embodiment, a mobile phone comprises a global positioning system chipset; a hole engine; a distance engine; a club recommendation engine; and a club presentation engine. The global positioning system chipset determines a stroke location of a golfer. The hole engine determines a hole location. The distance engine, which is communicatively coupled to the chipset and the hole engine, calculates a difference between the two determined locations. The club recommendation engine, which is communicatively coupled to the distance engine, determines a club to use based on the difference. The club presentation engine, which is communicatively coupled to the club recommendation engine, presents the determination of club.

BRIEF DESCRIPTION OF THE DRAWINGS

Non-limiting and non-exhaustive embodiments of the present invention are described with reference to the following figures, wherein like reference numerals refer to like parts throughout the various views unless otherwise specified.

FIG. 1 is a block diagram illustrating a network system;

FIG. 2 is a flow diagram illustrating data flow of the system;

FIG. 3 is an example screenshot of a main menu of the system;

FIG. 4 is a table of client/server command mapping;

FIG. 5 is a block diagram illustrating a database of the system;

FIG. 6 is a flowchart illustrating a method of self-caddying;

FIG. 7 is a diagram illustrating a search club by name function;

FIG. 8 is a diagram illustrating a search club by geocode function;

FIG. 9 is an example screen shot of a golf club found screen;

FIG. 10 is a diagram illustrating a get club info function;

FIG. 11 is an example screenshot of a golf club info screen;

FIG. 12 is a diagram illustrating a download course function;

FIG. 13 is a diagram illustrating an example golf course download file;

FIG. 14 is an example screenshot of a golf club info screen;

FIG. 15 is an example screenshot of a play a round screen;

FIG. 16 is a flowchart illustrating a method of playing a round;

FIG. 17 is an example screenshot of a play a hole screen;

FIG. 18 is a flowchart illustrating a method of playing a hole

FIG. 19 is a diagram illustrating a get current location function;

FIG. 20 is an example screenshot of a record pin screen;

FIG. 21 is an example screenshot of a play a stroke screen

FIG. 22 is a flowchart illustrating a method of playing a stroke;

FIG. 23 is a diagram illustrating a get pin location function;

FIG. 24 is a diagram illustrating a golf distance function;

FIG. 25 is an example screenshot of a playing a stroke with distance to pin screen;

FIG. 26 is a diagram illustrating a get club function;

FIG. 27 is a diagram illustrating a get club most accurate function;

FIG. 28 is a diagram illustrating example output of the get club most accurate function;

FIG. 29 is a diagram illustrating a get club most used function;

FIG. 30 is a diagram illustrating example output of the get club most used function;

FIG. 31 is an example screenshot of a play a stroke with club recommendation screen;

FIG. 32 is an example screenshot of a play a round screen with a completed round;

FIG. 33 is an example screenshot of a play a round screen after successful upload;

FIG. 34 is a block diagram illustrating a hosting server architecture;

FIG. 35 is a block diagram illustrating a mobile phone; and

FIG. 36 is a block diagram illustrating a memory of the mobile phone.

DETAILED DESCRIPTION

The following description is provided to enable any person having ordinary skill in the art to make and use the invention, and is provided in the context of a particular application and its requirements. Various modifications to the embodiments will be readily apparent to those skilled in the art, and the principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles, features and teachings disclosed herein.

FIG. 1 is a block diagram illustrating a network system 100. Embodiments of the invention include a new system and method that leverage the global positioning system (GPS) capability in mobile phones to help golfers to perform many tasks often provided by a caddie. An embodiment of the system 100 comprises three main components:

    • Mobile Phone 170 which includes a friendly, graphical user interface software application for golfers to run on their mobile phone environment. The software enables golfer to search for nearest golf clubs within vicinity based on current location, assist a golfer during play to make wise decisions based on the yardage from the ball to the center of green or based on historical statistics, record game scores and strokes data for future game improvement.
    • Hosting System (Server) 140: a centralized, hosting computer system that stores all users, golf clubs, data and provide a central intelligent interface for mobile phone application, web site access, and internal back-end tools as well as third party software integration.
    • Community Internet Web Site 130 where users can search for golf course information and perform golf community activities like sharing experience tips, rating, etc. Users can have their own account to review their golf rounds play history, reports, analysis, rounds play with stroke by stroke displayed on a digital map format. Other features include online tee time booking, online golf lesson, local golf clubs news, special discounts, e-coupons, and other golf related-information. The website also allows community users to digitize local golf courses GPS locations of the pins and upload onto the hosting system for community users to share.

Other components of the system 100 include GPS satellites 110, and towers 120. The satellites provide GPS signals to the phone 170 so that it can determine its position, which should coincide with a golf ball location 150 and therefore calculate a distance from the golf ball location 150 to a golf center of green location (hole) 160. The towers 120 provide wireless signals to the phone 170.

In an embodiment:

(1) The golf community (or others) 200 digitize golf course map and pin locations and store data into the hosting system 140 from the web site 130 via an Internet connection.

(2) Golfer downloads digitized course map and pin locations from the hosting system 140 to his/her mobile phone 170 via the wireless mobile network. This data is used by the phone 170 with GPS capability to improve golfer's game.

(3) Upon completion, golfer uploads his/her game scores, GPS location data, or new golf course data to the hosting system 140 via the wireless mobile network for future analysis, references, and other users to share.

(4) Golfer can access his/her game scores, game plan, statistics, etc. from the Internet web site 130.

(5) Golfer can send game plan, data, etc. directly to his/her mobile phone 170 via Internet/mobile wireless network.

In an embodiment, an application sits in the phone 170 and has a small footprint, client software application written for mobile phone environment. It runs within the mobile phone operating system, utilizing mobile system interfaces provided by the mobile network carriers or mobile phone manufacturers. Some sample system interfaces are memory storage, network connection, hardware interface like GPS capability, native mobile phone features, etc. The application can be distributed by users 200 downloading it from the Internet via wireless mobile network from the mobile carrier network, or pre-installed with other mobile network carrier's applications when the phone is available for commercially used. Upon successful installation, a user can run the application directly on the mobile phone 170 with screen display, interactive keypad control, and sound from the mobile phone 170 via a menu, as shown in FIG. 3.

In an embodiment, the mobile application communicates with the hosting system 140 by a set of command protocols. All requests are made by the mobile phone application. The commands are in text format. They are sent and received using TCP/IP protocol. To perform a certain task that needs the data from the hosting server 140, the mobile application sends an encoded command along with its parameters to the server using TCP/IP connection. At the hosting server 140, there is a mapping function (see FIG. 4) for each client command. For every client request, the server 140 performs the task and returns the results to the mobile client application.

In an embodiment, the following tables are internal data structures used in mobile application memory for all operations. The data structures are somewhat one-on-one mapping to database tables residing in the hosting system 140. In most cases, these data structures are populated by the data downloaded from the golf course text file from the hosting server upon user's selection on the golf club 510, golf course 540 to use (see FIG. 5).

TABLE I
Golf Club 510
Object
NameDescriptionExample
IDUnique ID1245
NameGolf club nameSan Jose Municipal Golf
Course
DescriptionGolf club descriptionMunicipal, 18 holes. Green
Fees: $33-$47. Cart Fee:
$25. Bob McGrath, PGA
Class A Director of Golf;
Dennis Tuhn, PGA Class A
Pro; George Young, CGCS
Supt. Non-member course.
Course Designer: Robert
Muir Graves. Course
Record: 67 by John Ellis.
TypePubic, semi-public, private,public
etc.
WebsiteWebsite addresswww.sjmuni.com
StreetStreet
CityCity
StateState
ZipZip code
CountryCountry
PhonePhone # including 1 and
area code
FaxFax #
StatusInternal club statusPending, QA, Stating,
Active, In-active, etc.
ImageImage URL

TABLE II
Golf Course 540
Object
NameDescriptionExample
IDUnique system id
NameGolf course name
Club IDClub id golf course belongs
to
DescriptionBrief golf course
description
ImageGolf course image URL

TABLE III
Golf Round 550
5Object
NameDescriptionExample
IDUnique system ID
Course IDGolf course ID where holeSan Jose Municipal Golf
belongs toCourse
User IDUser ID who played this
round
DateDate played
NameRound name
Total Score
Status

TABLE IV
Hole 560
Object
NameDescriptionExample
IDUnique system ID
Course IDGolf course ID where holeSan Jose Municipal Golf
belongs toCourse
DescriptionShort hole description
NameHole name
HintShort hint from the pro on
how to play this hole
LatitudeLatitude of the center of
green (or pin)
LongitudeLongitude of the center of
the green (or pin)
ElevationElevation of the green
from the sea level
ParPar of this hole
ScoreScore of this hole
T1nameTee 1 name
T2lenTee 1 yardage
T2nameTee 2 name
T2lenTee 2 yardage
T3nameTee 3 name
T3lenTee 3 yardage
T4nameTee 4 name
T4lenTee 4 yardage
T5nameTee 5 name
T5lenTee 5 yardage
Statusstatus

TABLE V
Stroke 570
Object
NameDescriptionExample
IDUnique system ID
Hole IDHole ID that this stroke
occurred at
User IDUser ID who made this
stroke
Round IDRound ID that this stroke
occurred in
NumberHole number
DateDate stroke made
HintFuture Use-
LatitudeLatitude of the ball
position at rest prior to this
stroke
LongitudeLongitude of the ball
position at rest prior to this
stroke
ElevationElevation of the ball
position at rest prior to this
stroke
YardageMadeYardage made
YardageYardage to shoot
Club UsedGolf Club used
Statusstatus

TABLE VI
User 520
Object
NameDescriptionExample
IDUnique system ID
User NameBrief user name
PasswordPassword
FirstFirst name
LastLast name
EmailEmail
CPhoneCell phone
HPhoneHome phone
WPhoneWork phone
StreetStreet number and name
CityCity
StateState
ZipZipcode
CountryCountry
StatusUser status
Member SinceMember since

TABLE VII
User Profile 530
Object
NameDescriptionExample
IDUnique system ID
User IDUser ID
DriverDriver driving distance
3Wood3Wood distance
5Wood5Wood distance
7Wood7Wood distance
2HB2 Hybrid yardage
3HB3 Hybrid yardage
4HB4 Hybrid yardage
5HB5 Hybrid
2Iron2 Iron yardage
3Iron3 Iron yardage
4Iron
5Iron
6Iron
7Iron
8Iron
9Iron
PWPitching Wedge yardage
SWSand Wedge yardage
AWApproach Wedge yardage
LWLob Wedge yardage
LastUpdateDate last yardage update
StatusGeneral status

TABLE VIII
Location
Object
NameDescriptionExample
LatitudeLatitude of the ball
position at rest prior to this
stroke
LongitudeLongitude of the ball
position at rest prior to this
stroke
ElevationElevation of the ball
position at rest prior to this
stroke

FIG. 6 is a flowchart illustrating a method 600 of self-caddying. The method 600 assumes user authentication upon application startup is completed.

Find a Golf Club (610) is a command (FIG. 7 and FIG. 8) from a main menu. The command is an intuitive, simple, real-time search for users to look up any golf course available in the host system database. Users can select different search criteria to narrow the search. They can search the golf club by name, city, zip code, or by the nearest golf courses within the given range of current mobile phone position. Upon successful search, a list of matched golf clubs is returned to the mobile phone application to display. Followings are the sample functions for each search criteria.

As a result for the Find A Golf Club (610) command, a list of matched golf clubs are returned to the mobile application from the host system as shown in example FIG. 9.

A user can view and navigate through the list of matched golf clubs. The user then selects (620) a desired golf course. The mobile phone 170 sends a GET_CLUB_INFO command (FIG. 10) to the server 140 to retrieve more details of the selected golf club information from the database as follows:

Upon receiving the club record, the mobile phone 170 displays the club information such as general description, address, contact phone numbers, type (public, private, etc.), weekend/weekday rates, course description, course par, tees (men/women), slope ratings, user rating, special promotion, ads, etc. as in example FIG. 11.

After viewing the golf club course details, if users decide to play a golf round leveraging the phone 170 to assist in playing, then they can select command Download Golf Club/course (FIG. 12) to download golf course details files from the host system 140 via the Internet to the mobile phone 170.

A golf course details file (see FIG. 13) contains golf club, golf course(s) and holes information data in a proprietary, pre-defined format, being mapped directly correlated with database tables fields. Pipe (|) and new line are used as delimiters. Upon receiving the file, the mobile phone 170 parses and maps data into its internal data structures (see FIG. 5 and Tables I-VIII) accordingly for fast operations.

Due to the nature of mobile phone usage where user can close and open a clam shell any time during the play, it's important to have the downloaded file and any other critical data in application memory stored instantly on a persistent local storage. In this case, the mobile local data storage is a simple text file. In an embodiment, the screen sample after a successful download may resemble FIG. 14.

Upon successful download, a user can select Play A Round menu item 1610 (FIG. 16) to start playing a golf round. A Round record is created and assigned a sequential id as a name. (See FIG. 5—Database and internal application data structures and tables.) The golf round record is associated with a user, a golf course, and all its holes. Later, when a round is completed, it will associate with all the golf strokes performed during that round. The accumulative golf strokes, which is called score is also calculated and recorded. From this screen, a user can have a complete view of a play on a certain day. Each user can save more than one round. A sample screen display is shown in FIG. 15.

New Round command (1620) saves current round and starts a new round. Upload command (1640) uploads user's round of golf data to the hosting system for future use in golf club recommendation and records tracking, as will be discussed further below. After a round is created, user is ready to start playing a round.

A user can select the menu item Play A Hole 1650 from the Play A Round screen (FIG. 15) to start playing a golf hole. The menu starts with the first hole as the default if there is no completed hole prior to that. The screen starts with the current hole and stroke in progress otherwise. A user can navigate using mobile phone keypad to the next and previous hole. There are either 9 holes or 18 holes round. The number of holes is provided from the course download. For every hole, its information such as general description, pins' yardages, image, if any, local rules, play mode; View only or Play mode from the Setting menu, accumulative strokes and score, are displayed.

Record Pin command (1820): This command is available only if the golf course is being created by the user in the case that the golf course file does not exit in the hosting system (see Create a Golf Course, FIG. 3—Main Menu). User can position him/herself at the center of the green of the hole and run this command to record the GPS coordinates of the center of the green for later upload to the hosting system.

The pin (or center of green) coordinates are saved to the mobile application internal data structures as well as the persistent text file on the device. The Record Pin screen (FIG. 20) shows the Pin location in the following sample screen:

Recommend command (1830) to display a hint text (and/or image), usually provided by the local club professional on the strategy and how to play on this hole. Data is available during the course download (see Internal Data Structure, Hole table, and Download Course).

When a round is completed, either 9 or 18 holes, a user can choose Complete Round command (1850) to view the completed round information and prepare to upload the data to the hosting system.

To start playing stroke and record its data, a user can select the Play A Stroke command (1840). The function Play A Stroke (1840) is to assist user to manage every stroke play of any given hole. Upon being selected, the Play A Stroke screen (FIG. 21) creates and starts with the first stroke as the default if there is no completed stroke prior to that. If not, the screen starts with the current hole and stroke in progress, otherwise. In addition to the brief golf course, hole information, the screen now displays the stroke information as well that include stroke number, distance to the pin (center of the green), or golf club recommendation.

For New Stroke command (2250; FIG. 22), a new Stroke record is created (see Stroke table in FIG. 5—Database and internal application data structures and tables.). The application also updates the previous stroke record. It prompts user to enter the club type used for the previous stroke. It also calculates the yardage needed (Yardage field) and yardage made (YardageMade field) based on the current golf ball position for future Stroke Recommendation function.

To determine stroke position (670) a Distance to Pin (2220) command from the Play A Stroke screen is used. It is to assist user to determine the distance in yards from the current location of the ball to the pin using built-in GPS capability in the mobile phone 170 at any given hole. When user selects the Distance to Pin command, given that the current hole number is known, the mobile phone 170 calls function Get_Pin_Location(Current_Hole_Number) to get the Location structure. See FIG. 23.

Afterwards, a Get_Distance(Get_Pin_Location(Current_Hole_Number)) (FIG. 24) returns the distance of the current position where the golfer, the mobile phone 170, and the ball lies at rest are to the pin (or center of the green).

Then Display_GPS_Info( ) displays the ball position to the pin on the LCD as in the sample screen as shown in FIG. 25.

To recommend a stroke (680), a user selects a Recommendation command from the Play A Stroke screen (FIG. 25). It is to assist user to determine what golf club should be used, based on the distance in yards from the current location of the ball and the recommendation methodology or mode user prefers to use. There are three recommendation modes for the shot:

Profile: recommending a golf club based on the current distance and the preset user's profile on clubs distances. For example, if the distance is 110 yard and user's iron 9 club preset distance in the My Profile is 115 yards, then iron 9 club is recommended.

Most Accurate: recommending a golf club based on user's history of plays and statistics. For a given distance, it suggests the club used in the past that the result distance of a required yardage and yardage made is minimal. This rule is applied for all user's past strokes that have distance within +15 yards from a given distance.

For Example: For a shot that needs a distance of 135 yards; the system will pull up all stroke plays of that user in the database that has the Distance field +15 yards from 135 yards. (See Stroke table in FIG. 5—Database and internal application data structures and tables.) Among these strokes, the one that has Delta Yardage −5 yards is the closest one. Therefore, the iron club 8 is recommended. See FIG. 28—Example of Get Club Most Accurate Function below.

Most Frequently Used: recommending a golf club based on user's history of plays and statistics. For a given distance, it suggests the club mostly used in the past that the result distances are within +/−10 yards of a given distance.

For Example: For a shot that needs a distance of 135 yards; the system will pull up all stroke plays of that user in the database that has the YardMade field +/−10 yards from 135 yards. (See Stroke table in FIG. 5—Database and internal application data structures and tables.) Among these strokes, club iron 9 has been used to the most. Therefore, the iron club 9 is recommended. See FIG. 30.

By calling Display_Suggestion_Info( ) to display the golf club recommendation, the screen sample looks like FIG. 31.

After finishing the last stroke of the hole, user can select a Complete Hole (FIG. 31) to go back to the Play A Hole menu to start the next hole until completing a round.

When a round of golf is completed, user has the option to upload the round play (690) to the hosting system for future statistics and game improvement. A sample screen of completed round is shown in FIG. 32.

If the round played is the new golf course created by the user, it can be uploaded into the hosting system for others to share with the mobile phone application as well. Upon successful upload a round to the hosting system the sample screen looks like that shown in FIG. 33.

Finally, user can press Complete A Round (FIG. 33) to go back to the mobile phone 170 application Main Menu for any other use.

The hosting server system 140 is a central hosting system that houses the database 3460 and all the intelligent business logic 3440 to serve mobile phone application 3410, web site 3420, and all internal back-end tools 3430. The database 3460 stores all users, golf club, golf courses, holes, rounds, shots, billing plan, promotion, ads, actions, and others. The intelligent business logic 3440 performs all server tasks like user authentication, service rendered to clients based on subscription plan, sophisticated and heavy computing like shots statistics, golf course search, and many others. Result is sent to the client side via a proprietary client/server protocol via the Internet. In another embodiment, the database 3460 is stored in the mobile phone 170 so that a user does not need to access a network to perform the above-mentioned methods.

The website 3420 is another system portal for users to interface with the system. From the website, users can do several functions, such as golf course search; golf course creation; and participate in a golf forum.

The golf course search is similar to the mobile phone application feature. The website provides an intuitive, simple, real-time search capability for users to look up any golf course available in the host system. The system provides many search criteria that can be used singly or combined with others to narrow the search. User can search:

    • a. By Name: golf courses that match a given name. Wild card characters are acceptable.
    • b. By Zip Code: golf courses that match a zip code.
    • c. By City: golf courses that match a city name

If a golf course is not available from the system, a user can use a web-based tool to create a golf course data it in the hosting system database for mobile phone application to use. The golf club, golf course(s), and hole tables from the FIG. 5—Database and internal application data structures and tables are populated by the web-based tool.

Method 1:

    • Use Google Map to find the golf course satellite map by entering the address.
    • Locate every green from the map.
    • Enter the center of the green locations; i.e. longitude and latitude provided by Google Map into the tool entry fields accordingly.
    • Save the data.

Method 2:

    • In the case that Hosting system administrator does not know the hole from the satellite map, he/she posts the map with holes' labels to the website community and asks for local golfers to help identify the hole's number with the label.
    • User identify the holes' numbers and reply accordingly with the labels for the hosting system admin can record the greens' GPS locations as above.

The golf forum is a public forum for golfers to post any golf-related discussions, blogs, images, experiences, thoughts, etc. One of the most important features of the forum is allow users to rate a golf course for references based on certain criteria. The golf course rating can be used later by the system to mobile phone application.

FIG. 35 is a block diagram illustrating a wireless phone 170 (FIG. 1) capable of hosting the functions described above. The phone 170 includes a wireless transceiver 3510 capable to wirelessly communicate with wireless networks via cell sites, such as cell tower 120; a memory device 3560, such as such as a magnetic disk, Random Access Memory (RAM), Flash Memory or other memory device or combination thereof a processor 3550, such as an ARM 7 microprocessor or a Motorola 68000 microprocessor; a GPS receiver 3540; a display 3580; and an input device 3590, all interconnected for communication by a system bus 3570. In addition, wireless transceiver 3510 is communicatively coupled to antenna 3500.

The GPS receiver 3540 receives radio signals from GPS satellites orbiting the Earth. Based on the received signals, the receiver 3540 can calculate its position and altitude. The GPS receiver 3540 can then forward that data to processor 3550 for processing. The term GPS refers to any generic global positioning system and not just satellite based. For example, the GPS receiver 3540 can use a Loran-C, GLONASS, Galileo, triangulation between cell phone towers or other location determination system.

The transceiver 210 can wirelessly transmit and receive data, including text messages, such as SMS messages or other data formats, and voice, via wireless networks, such as Cellular Digital Packet Data (CDPD) and ARDIS. The transceiver 3510 comprises a transmitter 3520 for transmitting data and a receiver 3530 for receiving data.

The processor 3550 executes engines stored in memory 3560 to transmit and receive SMS text messages (or data in other formats) and to run the golf functions discussed above. The display 3580 comprises a LCD display or other device for displaying data. The input 3590 includes a keyboard and/or other input device.

FIG. 36 is a block diagram illustrating a memory 3560 of the mobile phone. The memory 3560 includes a hole engine 3610; a distance engine 3620; a club recommendation engine 3630; a club presentation engine 3640; a golf course engine 3650; a storage engine 3660; and a map engine 3670. While the engines 3610-3670 are shown in a software embodiment, they can also be implemented with other technology, such as Application Specific Integrated Circuits.

The hole engine 3610 determines a hole location (e.g., pin) The hole engine 3610 may use the function Get_Pin_Location to get the pin location from a database stored in the memory 3560 and/or stored at another site. The distance engine 3620 calculates a difference between the hole and current golfer position using the Get_Distance function. The club recommendation engine 3630 determines a club to use based on the difference. Functions used by the engine 3630 may include the Get_Club_Profile (Distance) function, the Get_Club_Most_Accurate function and the Get_Club_Most_Used function. The club presentation engine 3640 presents the determination of club on a screen.

The golf course engine 3650 receives golf course data including hole locations, either from a local database or from a database stored at another site. The storage engine 3660 stores round play data locally and/or at another site. The map engine 3670 shows stored data in a map format. That is, the map engine 3670 displays a map of the golf course (or section thereof) and round(s) played so that a user can improve his/her golf game by reviewing the strokes. In an embodiment, the map engine 3670 displays the map and data on the mobile phone 170. In another embodiment, the map engine 3670 is resident on the server 140, which displays the map either on the mobile phone 170 (when downloaded) or on a user's computer when a website is accessed.

The foregoing description of the illustrated embodiments of the present invention is by way of example only, and other variations and modifications of the above-described embodiments and methods are possible in light of the foregoing teaching. Further, components of this invention may be implemented using a programmed general purpose digital computer, using application specific integrated circuits, or using a network of interconnected conventional components and circuits. Connections may be wired, wireless, modem, etc. The embodiments described herein are not intended to be exhaustive or limiting. The present invention is limited only by the following claims.