Android Development - Google Maps

Aus Wikizone
Wechseln zu: Navigation, Suche

Link auf Google Maps als Content Provider

// Possible geo uris:
// geo:lat,long
// geo:lat,long?z=zoom
// geo:0,0?q=AddressOrPlace
double latitude = 48.3895;
double longitude = 9.1869;
int zoom = 13;
String uriBegin = "geo:" + latitude + "," + longitude;
String query = latitude + "," + longitude;
String encodedQuery = Uri.encode(query);
String uriString = uriBegin + "?q=" + encodedQuery + "&z=" + zoom;
Uri uri = Uri.parse(uriString);
i = new Intent(android.content.Intent.ACTION_VIEW, uri);
showActivity(i);

MapView Activity

https://developers.google.com/maps/documentation/android/?hl=de
http://ddewaele.github.io/GoogleMapsV2WithActionBarSherlock/part1

Voraussetzungen

  • Google Play Services SDK muß installiert sein (SDK Manager)
  • In Eclipse muß folgendes Projekt importiert sein: myadtfolder/sdk/extras/google/google_play_services/libproject/google-play-services_lib damit die Packages zur Verfügung stehen.


Projekt und API Key

  • Project Properties > Android > Project Build Targets > Google APIs
  • Fingerprint holen
  • Registrieren auf der google developer console und API Schlüssel holen


Manifest Datei - Permissions und Key registrieren

Im Beispiel sind Permissions für diverse Zwecke rund um Kartendienste vorgesehen (siehe Kommentare)

vor application tag

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

Permissions (die erste nur bei Einsatz der ActionSherlock Toolbar)

<!-- Google Maps related permissions -->
<!-- <permission android:name="com.ecs.google.maps.v2.actionbarsherlock.permission.MAPS_RECEIVE" android:protectionLevel="signature"/> -->
<uses-permission android:name="com.example.mapdemo.permission.MAPS_RECEIVE"/>
 
<!-- Network connectivity permissions -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
 
<!-- Access Google based webservices -->
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
 
<!-- External storage for caching. -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<!-- My Location -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

<!-- Maps API needs OpenGL ES 2.0. -->
<uses-feature android:glEsVersion="0x00020000" android:required="true"/>

Im Application Tag wird der API-Key hinterlegt:

<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="INSERT_YOUR_API_KEY_HERE"/>

Ein MapFragment hinzufügen

Wir fügen ein Map Fragment hinzu

Hinweis: Fragments gehen erst ab API11 - Honeycomb


<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:id="@+id/root"
	android:layout_width="match_parent"
	android:layout_height="match_parent"
	android:orientation="horizontal" >

<fragment android:id="@+id/map"
		  android:layout_width="match_parent"
		  android:layout_height="match_parent"
		  android:name="com.google.android.gms.maps.MapFragment"/>
</FrameLayout> 

Activity Klasse

extends MapActivity