20090270192 | Tip Plate for a Billiards Cue | October, 2009 | Titus et al. |
20080125235 | Non-spherical billiard ball | May, 2008 | Robledo et al. |
20080096681 | Agent To Remove Paint, Lacquer, Glue, Plastic Or Similar From Objects And The Use Of It | April, 2008 | Hansen |
20090124417 | Dual Core Golf Ball having Negative-Hardness-Gradient Thermoplastic Inner Core and Shallow Positive-Hardness-Gradient Thermoset Outer Core Layer | May, 2009 | Sullivan et al. |
20080153632 | Method and apparatus for ball kicking practice | June, 2008 | Flores et al. |
20050181885 | Apparatus For Practicing The Golf Putting Stroke | August, 2005 | Yamanaka |
20050119063 | Golf stroke training device | June, 2005 | Tupman et al. |
20050187031 | Golf grip | August, 2005 | Kwitek |
20050153799 | Sports equipment stick with truss construction | July, 2005 | Rigoli |
20080161137 | Golf tee | July, 2008 | Noa |
20040043841 | Basketball training aid | March, 2004 | Williams |
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.
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.
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.
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.
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.
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:
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 | ||
Name | Description | Example |
ID | Unique ID | 1245 |
Name | Golf club name | San Jose Municipal Golf |
Course | ||
Description | Golf club description | Municipal, 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. | ||
Type | Pubic, semi-public, private, | public |
etc. | ||
Website | Website address | www.sjmuni.com |
Street | Street | |
City | City | |
State | State | |
Zip | Zip code | |
Country | Country | |
Phone | Phone # including 1 and | |
area code | ||
Fax | Fax # | |
Status | Internal club status | Pending, QA, Stating, |
Active, In-active, etc. | ||
Image | Image URL | |
TABLE II | |||
Golf Course 540 | |||
Object | |||
Name | Description | Example | |
ID | Unique system id | ||
Name | Golf course name | ||
Club ID | Club id golf course belongs | ||
to | |||
Description | Brief golf course | ||
description | |||
Image | Golf course image URL | ||
TABLE III | ||
Golf Round 550 | ||
5Object | ||
Name | Description | Example |
ID | Unique system ID | |
Course ID | Golf course ID where hole | San Jose Municipal Golf |
belongs to | Course | |
User ID | User ID who played this | |
round | ||
Date | Date played | |
Name | Round name | |
Total Score | ||
Status | ||
TABLE IV | ||
Hole 560 | ||
Object | ||
Name | Description | Example |
ID | Unique system ID | |
Course ID | Golf course ID where hole | San Jose Municipal Golf |
belongs to | Course | |
Description | Short hole description | |
Name | Hole name | |
Hint | Short hint from the pro on | |
how to play this hole | ||
Latitude | Latitude of the center of | |
green (or pin) | ||
Longitude | Longitude of the center of | |
the green (or pin) | ||
Elevation | Elevation of the green | |
from the sea level | ||
Par | Par of this hole | |
Score | Score of this hole | |
T1name | Tee 1 name | |
T2len | Tee 1 yardage | |
T2name | Tee 2 name | |
T2len | Tee 2 yardage | |
T3name | Tee 3 name | |
T3len | Tee 3 yardage | |
T4name | Tee 4 name | |
T4len | Tee 4 yardage | |
T5name | Tee 5 name | |
T5len | Tee 5 yardage | |
Status | status | |
TABLE V | |||
Stroke 570 | |||
Object | |||
Name | Description | Example | |
ID | Unique system ID | ||
Hole ID | Hole ID that this stroke | ||
occurred at | |||
User ID | User ID who made this | ||
stroke | |||
Round ID | Round ID that this stroke | ||
occurred in | |||
Number | Hole number | ||
Date | Date stroke made | ||
Hint | Future Use- | ||
Latitude | Latitude of the ball | ||
position at rest prior to this | |||
stroke | |||
Longitude | Longitude of the ball | ||
position at rest prior to this | |||
stroke | |||
Elevation | Elevation of the ball | ||
position at rest prior to this | |||
stroke | |||
YardageMade | Yardage made | ||
Yardage | Yardage to shoot | ||
Club Used | Golf Club used | ||
Status | status | ||
TABLE VI | |||
User 520 | |||
Object | |||
Name | Description | Example | |
ID | Unique system ID | ||
User Name | Brief user name | ||
Password | Password | ||
First | First name | ||
Last | Last name | ||
CPhone | Cell phone | ||
HPhone | Home phone | ||
WPhone | Work phone | ||
Street | Street number and name | ||
City | City | ||
State | State | ||
Zip | Zipcode | ||
Country | Country | ||
Status | User status | ||
Member Since | Member since | ||
TABLE VII | |||
User Profile 530 | |||
Object | |||
Name | Description | Example | |
ID | Unique system ID | ||
User ID | User ID | ||
Driver | Driver driving distance | ||
3Wood | 3Wood distance | ||
5Wood | 5Wood distance | ||
7Wood | 7Wood distance | ||
2HB | 2 Hybrid yardage | ||
3HB | 3 Hybrid yardage | ||
4HB | 4 Hybrid yardage | ||
5HB | 5 Hybrid | ||
2Iron | 2 Iron yardage | ||
3Iron | 3 Iron yardage | ||
4Iron | |||
5Iron | |||
6Iron | |||
7Iron | |||
8Iron | |||
9Iron | |||
PW | Pitching Wedge yardage | ||
SW | Sand Wedge yardage | ||
AW | Approach Wedge yardage | ||
LW | Lob Wedge yardage | ||
LastUpdate | Date last yardage update | ||
Status | General status | ||
TABLE VIII | |||
Location | |||
Object | |||
Name | Description | Example | |
Latitude | Latitude of the ball | ||
position at rest prior to this | |||
stroke | |||
Longitude | Longitude of the ball | ||
position at rest prior to this | |||
stroke | |||
Elevation | Elevation 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:
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:
Method 2:
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.