What APIs to use to create a map checkpoint game (API 15)?
<p>Background information &amp; problem statement</p>

<p>A couple of smaller towns has cooperatively started campaigns to get inhabitants to get out and exersize more. 
The idea is to visit as many checkpoints as possible that are placed out in different places. 
Paper maps are available to anyone that wants to participate but I rather have an app to go for this. </p>

<p>The different towns all have web pages (same base, but distinct databases) where users can register and track their progress. 
Each checkpoint has a code which you use to register your progress. </p>

<p>I want to do something simple, just replacing the paper print with the possibility to note down the code of visited checkpoint.
No integration to the web services. </p>

<p>I'm trying to get this ready today, starting from scratch now :)</p>

<p>I want to base the program on API level no higher than 15 which is what I have in my device (HTC One V).</p>

<p>What I want is some ideas from you on which APIs (not code details, just ideas) you think are the most simple to use to implement the following functions:</p>

<ul>
<li>Start screen menu; choose which map(town) you want to display</li>
<li>Map (preferable offline, but if online is easier)</li>
<li>Define geographical points with a one dynamic (code) and a few static attributes; eg difficulty, icon, description</li>
<li>Display of geographical points overlayed on map, clickable</li>
<li>Per clickable overlay item display attributes and possibility to edit code</li>
<li>Data storage of codes</li>
</ul>

<p>Here is what I think so far;
Define the geographical points in XML + image(s) which are parsed and loaded on choosing town. 
Bring up the map and zoom to predefined point from chosen XML.
populate map with overlay items with default icon if not visited (has no code entered), or grayed out if already visited (has code entered)
Allow user to click overlay item and store code.
Allow user to switch to a list view with all the checkpoints to see which ones are left.</p>

<p>Sample XML for the checkpoints    </p>

<pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;town value="smalltown"&gt;
  &lt;preferences&gt;
    &lt;default-zoom-level&gt;5&lt;/default-zoom-level&gt;
    &lt;min-zoom-level&gt;0&lt;/min-zoom-level&gt;
    &lt;max-zoom-level&gt;10&lt;/max-zoom-level&gt;
    &lt;default-center&gt;+33.9905,-6.8704&lt;/default-center&gt;
  &lt;/preferences&gt;
  &lt;checkpoints&gt;
    &lt;checkpoint value="0"&gt;
      &lt;difficulty&gt;easy&lt;/difficulty&gt;
      &lt;icon&gt;green_circle&lt;/icon&gt;
      &lt;latitude&gt;+41.3317&lt;/latitude&gt;
      &lt;longitude&gt;+19.8172&lt;/longitude&gt;
    &lt;/checkpoint&gt;
  ...
  &lt;/checkpoints&gt;
&lt;/town&gt;
</code></pre>
