page.title=Google Maps Android API
header.hide=1

@jd:body


<div class="landing-banner">
        
<div class="col-6">
  <img src="{@docRoot}images/google/gps-maps.png" alt="">
</div>
<div class="col-6">

  <h1 itemprop="name" style="margin-bottom:0;">Google Maps Android API</h1>
  <p itemprop="description">Allow your users explore the world with rich maps provided by
  Google. Identify locations with <b>custom markers</b>, augment the map data
  with <b>image overlays</b>, embed <b>one or more maps</b> as fragments,
  and much more.</p>
  <p>The <a
href="{@docRoot}reference/com/google/android/gms/maps/package-summary.html"
>Google Maps Android API reference</a> is available here on developer.android.com, but for more
information about adding maps to your app, visit:</p>
  <p><a class="external-link"
href="https://developers.google.com/maps/documentation/android/">developers.google.com/maps</a></p>
</div>
</div>



<div class="landing-docs">
  <div class="col-6 normal-links">
    <h3 style="clear:left">Key Developer Features</h3>
    <h4>Add maps to your app</h4>
    <p>With version 2 of the Google Maps Android API, you can embed maps into an activity
    as a fragment with a simple XML snippet. The new Maps offer exciting features such as 3D maps;
    indoor, satellite, terrain, and hybrid maps;
    vector-based tiles for efficient caching and drawing; animated transitions; and much more.
    <a class="external-link" href="https://developers.google.com/maps/documentation/android/map">Add
    a map object</a>.</p>
    
    <h4>Customize the map</h4>
    <p>Add markers onto the map to indicate special points of interest for your users.
    You can define custom colors or icons for your map markers to
    match your app's look and feel. To further enhance the app, draw polylines
    and polygons to indicate paths or regions, or provide complete image overlays.
    <a class="external-link" href="https://developers.google.com/maps/documentation/android/marker">Draw
    markers</a>.</p>
    </a>
    
    <h4>Control the user's view</h4>
    <p>Give your users a different view of the world with the ability to control the rotation, tilt,
    zoom, and pan properties of the "camera" perspective of the map.
    <a class="external-link" href="https://developers.google.com/maps/documentation/android/views">Change
    the view</a>.</p>
  </div>


  <div class="col-6 normal-links">
    <h3 style="clear:left">Getting Started</h3>
    <h4>1. Get the Google Play services SDK</h4>
    <p>The Google Maps Android APIs are part of the Google Play services platform.</p>
    <p>To use Google Maps, <a href="{@docRoot}google/play-services/setup.html">set up</a>
      the Google Play services SDK. Then see the <a class="external-link"
      href="https://developers.google.com/maps/documentation/android/start#installing_the_google_maps_android_v2_api">
      Getting Started guide</a> to get your API key for Maps and set up your app.
    </p>
            
    <h4>2. Run the sample</h4>
    
    <p>Once you've installed the Google Play services package, the Google Maps sample is located in
      <code>&lt;android-sdk&gt;/extras/google-play-services/samples/maps</code> and shows you
      how to use the major components of the Google Maps Android APIs.
    </p>
    
    <h4>3. Read the documentation</h4>
    
    <p>Read the <a href="https://devsite.googleplex.com/maps/terms">Google Maps
    API Terms of Service</a>.</p>
    
    <p>For quick access while developing your Android apps, the
      <a href="{@docRoot}reference/com/google/android/gms/maps/package-summary.html">Google Maps
      Android API reference</a> is available here on developer.android.com.</p>

    <p>Detailed documentation for the Google Maps Android APIs is available with the rest of the
    Google Maps developer documents at <a class="external-link"
    href="https://developers.google.com/maps/documentation/android/">developers.google.com/maps</a>.
    </p>
  </div>

</div>