25
l Maps

Map

Embed Size (px)

DESCRIPTION

Its explain about the map activity in android, How we can create Google map in android and create an app id with signature.

Citation preview

Page 1: Map

l Maps

Page 2: Map

l Maps

l Google Maps API is widely used on the webl The Android SDK provides support for easily

integrating the Google Maps API

Page 3: Map

l Using Google Maps in our appsl Configurel Maps require the Google API as the project build

targetl Maps require a Map API Key in order to be

deployedl http://code.google.com/android/add-ons/google-

apis/maps-overview.htmll Codel Create a MapView in a MapActivityl Create Map Overlays

Page 4: Map

l Add Google API in Eclipse• http://developer.android.com/sdk/adding-components.html

Page 5: Map

l Add Google API in Eclipsel Use API 4 for SDK 1.6

– http://developer.android.com/guide/appendix/api-levels.html

Page 6: Map

l Add Google API in Eclipsel Set the Google API as the Project Build Targetl Right-click on the project, select Properties

Page 7: Map

l Keys

l As we learned in lab 1 section 6, – https://sites.google.com/site/androidappcourse/labs/lab-1

• our apps must be signed in order to deploy them on a device

l Eclipse automatically creates a signed debug keystore that is used when launching our app from Eclipse

l In order to deploy our app to the public, we must create a signed keystore– See http://developer.android.com/guide/publishing/app-

signing.html#ExportWizard

Page 8: Map

l Find your keystore• http://code.google.com/android/add-ons/google-apis/

mapkey.html

Page 9: Map

l Find your debug keystore• http://code.google.com/android/add-ons/google-apis/

mapkey.html

Page 10: Map

l Get your certificate fingerprint• http://code.google.com/android/add-ons/google-apis/

mapkey.html

Page 11: Map

l Register your certificate with Google• http://code.google.com/android/maps-api-signup.html

Page 12: Map

l Add the Map API Key to your Application

• <com.google.android.maps.MapView• android:id="@+id/myMap" • android:layout_width="fill_parent" • android:layout_height="fill_parent"• android:clickable="true" • android:apiKey="@string/mapApiKey"/>

Page 13: Map

l What’s in the legal agreement?

l Read the Terms of Service (sections 1-11)l http://code.google.com/android/maps-api-signup.html

l Examplesl Maps may include ads in futurel Google may limit number of transactionsl Cannot use for turn-by-turn directions or autonomous driving

Page 14: Map

l Configure AndroidManifest.xml

• <application android:name="MyApplication" > • <uses-library android:name="com.google.android.maps" /> • ... • </application>

Page 15: Map

l Finally, we can start coding

l MapView l Contains a map l via Google Maps APIl Map tile retrieval and caching is all done for

youl Includes panl Includes zoom l use setBuiltInZoomControls(true);

Page 16: Map

l MapActivity

l MapView can only be constructed or inflated in a MapActivity

• public class MyActivity extends MapActivity {• …• @Override• public void onCreate(Bundle savedInstanceState) {• super.onCreate(savedInstanceState); • …• MapView myMap = (MapView)findViewById(R.id.myMap);• myMap.setBuiltInZoomControls();• myMap.setSatellite(true);

Page 17: Map

l MapView Modes

l MapView l You determine model setSatellite(true);l setTraffic(true);l setStreetView(true);

Page 18: Map

l MapController

l You can pan and zoom the map programmatically

• MapView myMap = (MapView)findViewById(R.id.myMap);• MapController mapController = myMap.getController();• mapController.setZoom(1); //widest zoom/far away• …• mapController.setZoom(21); //narrowest zoom/close in• mapController.zoomIn(); //one level• mapController.zoomOut(); //one level

Page 19: Map

l GeoPoint

l You can move to a particular point

• MapView myMap = (MapView)findViewById(R.id.myMap);• MapController mapController = myMap.getController();

• Double lat = 37.123456 * 1E6;• Double long = -122.123456 * 1E6;• GeoPoint point = new GeoPoint(lat.intValue(), long.intValue());• mapController.setCenter(point); //jump to point• …• mapController.animateTo(point); //smooth transition to point

Page 20: Map

l Reverse Geocoding

l Find address from longitude/latitude

• location = locationManager.getLastKnownLocation(• LocationManager.GPS_PROVIDER);• double lat = location.getLatitude();• double lng = location.getLongitude();• • Geocoder gc = new Geocoder(this, Locale.getDefault());• List<Address> addresses = null;• try {• addresses = gc.getFromLocation(lat, lng, 10);• } catch (IOException e) {}

Page 21: Map

l Forward Geocoding

l Find longitude/latitude (and more) from address

• Geocoder gc = new Geocoder(this, Locale.US);• List<Address> addresses = null;• try {• addresses = gc.getFromLocationName(• “123 Main St., Newton, Kansas”, 10);• } catch (IOException e) {}• double lat = addresses.get(0).getLatitude();• String zip = addresses.get(0).getPostalCode();

Page 22: Map

l Geolocation

l Optionsl GPS, cell networkl Wifi-based l Skyhook Wirelessl http://www.skyhookwireless.com/developers/

Android_Integration_Manual.php

Page 23: Map

l Setting up location services• public MyActivity() {• criteria = new Criteria();• criteria.setAccuracy(Criteria.ACCURACY_FINE);• criteria.setAltitudeRequired(false);• criteria.setBearingRequired(false);• criteria.setCostAllowed(true);• criteria.setPowerRequirement(Criteria.POWER_LOW);• };• private final LocationListener locationListener = new LocationListener() {• public void onLocationChanged(Location location) {• updateWithNewLocation(location);• }• public void onProviderDisabled(String provider) {• updateWithNewLocation(null);• }• public void onProviderEnabled(String provider) {}• public void onStatusChanged(String provider, int status, Bundle extras) {}• };

Page 24: Map

• @Override• protected void onStart() {• super.onStart();• locationManager = (LocationManager)getSystemService(• Context.LOCATION_SERVICE);• provider = locationManager.getBestProvider(criteria, true);• // or could be LocationManager.GPS_PROVIDER• try {• updateWithNewLocation(locationManager.getLastKnownLocation(• provider));• } catch (Exception e) {}• locationManager.requestLocationUpdates(provider, 2000, 10, • locationListener);• }• private void updateWithNewLocation(Location location) {• double latitude = 0.0;• double longitude = 0.0;• if (location != null) {• latitude = location.getLatitude();• longitude = location.getLongitude();• //do something with latitude and longitude (e.g. print or move map there)• }

Page 25: Map

l Turn GPS on and off to save battery

• @Override• protected void onPause() {• super.onPause();• //stop receiving GPS locationManager.removeUpdates(locationListener);• }• @Override• protected void onResume() {• super.onResume();• //restart receiving GPS locationManager.requestLocationUpdates(provider,

2000, 10, • locationListener);• }