page.title=Google Maps Android API v2
page.tags=mapview,location
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 v2</h1>
  <p itemprop="description">Allow your users to 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>Explore the <a
href="{@docRoot}reference/com/google/android/gms/maps/package-summary.html"
>Google Maps Android API v2 reference</a> or visit <a class="external-link"
href="https://developers.google.com/maps/documentation/android/">developers.google.com/maps</a>
for more information about adding maps to your app.</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 Google Maps Android API v2, 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>

    <h4>Add Street View to your app</h4>
    <p>Embed Street View into an activity and let your users explore the world
      through panoramic 360-degree views. Programmatically control the zoom and
      orientation (tilt and bearing) of the Street View camera, and animate the
      camera movements over a given duration.
      <a class="external-link" href="https://developers.google.com/maps/documentation/android/streetview">Add Street 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>Google Maps Android API v2 is part of the Google Play services platform.</p>
    <p>To use Google Maps, <a href="{@docRoot}google/play-services/setup.html">set up
      the Google Play services SDK</a>. 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 Google Maps Android API v2.
    </p>
    
    <h4>3. Read the documentation</h4>
    
    <p>Read the <a href="https://developers.google.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 v2 reference</a> is available here on developer.android.com.</p>

    <p>Detailed documentation for Google Maps Android API v2 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>
