/* * Copyright (C) 2012 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.google.mcommerce.sample.android.chapter09.googleMap; import android.os.Bundle; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.SupportMapFragment; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.MarkerOptions; import com.google.mcommerce.sample.android.R; /** * This shows how to create a simple activity with a map and a marker on the * map. * <p> * Notice how we deal with the possibility that the Google Play services APK is * not installed/enabled/updated on a user's device. */ public class BasicMapActivity extends android.support.v4.app.FragmentActivity { /** * Note that this may be null if the Google Play services APK is not * available. */ private GoogleMap mMap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.c09_basic_demo); setUpMapIfNeeded(); } @Override protected void onResume() { super.onResume(); setUpMapIfNeeded(); } /** * Sets up the map if it is possible to do so (i.e., the Google Play * services APK is correctly installed) and the map has not already been * instantiated.. This will ensure that we only ever call * {@link #setUpMap()} once when {@link #mMap} is not null. * <p> * If it isn't installed {@link SupportMapFragment} (and * {@link com.google.android.gms.maps.MapView MapView}) will show a prompt * for the user to install/update the Google Play services APK on their * device. * <p> * A user can return to this Activity after following the prompt and * correctly installing/updating/enabling the Google Play services. Since * the Activity may not have been completely destroyed during this process * (it is likely that it would only be stopped or paused), * {@link #onCreate(Bundle)} may not be called again so we should call this * method in {@link #onResume()} to guarantee that it will be called. */ private void setUpMapIfNeeded() { // Do a null check to confirm that we have not already instantiated the // map. if (mMap == null) { // Try to obtain the map from the SupportMapFragment. mMap = ((SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.map)).getMap(); // Check if we were successful in obtaining the map. if (mMap != null) { setUpMap(); } } } /** * This is where we can add markers or lines, add listeners or move the * camera. In this case, we just add a marker near Africa. * <p> * This should only be called once and when we are sure that {@link #mMap} * is not null. */ private void setUpMap() { mMap.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title( "Marker")); } }