+ All Categories

Map

Date post: 19-May-2015
Category:
Upload: training-guide
View: 251 times
Download: 0 times
Share this document with a friend
Description:
Its explain about the map activity in android, How we can create Google map in android and create an app id with signature.
Popular Tags:
25
l Maps
Transcript
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);• }


Recommended