First, you need to collect latitude and longitude points for your golf courses. How to do that is up to you, and not really an iPhone issue. Depending on how many points you have, to define the fairways and greens (and maybe hazards?), you might want to store all the points in an XML file, that would be bundled as a resource in your application. Or, maybe you store it on a webserver, if the content needs to be updated regularly. Or both. But, the file could be something like this:
<golf-courses>
<golf-course>
<name>Pebble Peach</name>
<par>72</par>
<fee>$200</fee>
<holes>
<hole>
<number>1</number>
<par>4</par>
<fairway>
<points>
<point><lat>-122.1231231</lat><lon>36.0131231</lon></point>
<point><lat>-122.1231232</lat><lon>36.0131235</lon></point>
<point><lat>-122.1231237</lat><lon>36.0131235</lon></point>
...
</points>
</fairway>
<green>
...
</green>
</hole>
</holes>
</golf-course>
...
</golf-courses>
Or, you could choose to use a format like KML, which is well designed for map overlays. That would be especially useful if you were able to get existing golf course data already stored in KML. But, from your question, it sounded like you'd be trying to deduce the data yourself from a set of aerial maps.
Then, you need to read the XML data (or KML, or plist data, or Core Data, or however you store it) into your app at startup.
Then, you would probably have a UIViewController that iterated through the data, and plotted the course as polygons. For this, your view controller would use the MapKit framework, and you would probably draw the course as a bunch of green shaded polygons, using MKPolygon
. You can see this other answer I posted on the very simplest MKPolygon
example.