Android Development - Google Maps: Unterschied zwischen den Versionen
Aus Wikizone
| Zeile 65: | Zeile 65: | ||
=== Ein MapFragment hinzufügen === | === Ein MapFragment hinzufügen === | ||
| − | Wir fügen ein Map Fragment hinzu | + | Wir fügen ein Map Fragment zum Standard Layout hinzu |
'''Hinweis:''' Fragments gehen erst ab API11 - Honeycomb | '''Hinweis:''' Fragments gehen erst ab API11 - Honeycomb | ||
<pre> | <pre> | ||
| + | <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||
| + | xmlns:tools="http://schemas.android.com/tools" | ||
| + | android:layout_width="match_parent" | ||
| + | android:layout_height="match_parent" | ||
| + | android:paddingBottom="@dimen/activity_vertical_margin" | ||
| + | android:paddingLeft="@dimen/activity_horizontal_margin" | ||
| + | android:paddingRight="@dimen/activity_horizontal_margin" | ||
| + | android:paddingTop="@dimen/activity_vertical_margin" | ||
| + | tools:context=".MapViewActivity" > | ||
| − | + | <fragment android:id="@+id/map" | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | <fragment android:id="@+id/map" | ||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||
android:layout_height="match_parent" | android:layout_height="match_parent" | ||
android:name="com.google.android.gms.maps.MapFragment"/> | android:name="com.google.android.gms.maps.MapFragment"/> | ||
| − | </ | + | |
| + | </RelativeLayout> | ||
| + | Jetzt kann man schon eine Karte in der Activity sehen. Es ist aber keine Interaktion im Code möglich. Deshalb verbinden wir jetzt das Fragment mit der Activity | ||
| + | </pre> | ||
| + | |||
| + | <pre> | ||
</pre> | </pre> | ||
Version vom 11. Oktober 2013, 13:16 Uhr
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 zum Standard Layout hinzu
Hinweis: Fragments gehen erst ab API11 - Honeycomb
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MapViewActivity" >
<fragment android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="com.google.android.gms.maps.MapFragment"/>
</RelativeLayout>
Jetzt kann man schon eine Karte in der Activity sehen. Es ist aber keine Interaktion im Code möglich. Deshalb verbinden wir jetzt das Fragment mit der Activity
Activity Klasse
extends MapActivity