Google Maps API för Android (5 / 7 steg)

Steg 5: Google Maps för mobilen



Bra jobb för att göra det långt! I detta avsnitt kommer vi att täcka hur till tillägga Google Maps till din mobil applikation. Bli upphetsad? Låt oss komma igång!

Koncept:

Google karta layouter för Android bygger i stor utsträckning på fragment. Istället för att skapa din egen, omfattar Google Maps API dem med majoriteten av backend gjort för dig. Som utvecklare, allt du behöver göra är hantera deras livscykel, layout och interaktion. Jag ska täcka alla dessa ämnen nedan.

Layout:

Lägga till en Google-karta till din app är mycket enkel. Eftersom kartorna är fragment, du kan blåsa upp dem i praktiskt taget alla ViewGroup som du vill.

För att starta, öppna activity_main.xml och ta bort standard TextView som placeras i layouten. Istället, dra och släpp en FrameLayout i dess ställe. Ge FrameLayout ett ID som kallas "mapContainer". Din färdiga layout bör se ut så här:

BILD HÄR

Livscykel:

Om du är bekant med fragment från någon tidigare erfarenhet av utveckling, då förstår du hur stora de är. Google Maps är inte annorlunda. API ger ett fragment klass som kallas MapFragment som kan manipuleras att passa. Också, eftersom de är fragment, det innebär att del av deras livscykel och deras layout manipulation hanteras via FragmentManager. Ganska cool va?

Här är där det blir intressant. Öppna din MainActivity.java. På toppen av din klassdeklaration, genomföra OnMapReadyCallback och sedan importera metoden:

allmän klass MainActivity utökar verksamheten implementerar OnMapReadyCallback {
...

public void onMapReady (GoogleMap googleMap) {}
...

Denna callback utlöser när din karta är redo att användas. Vi kommer att lyckas i en minut.

Nu skapa två privata medlemsvariabler till din verksamhet. en för den GoogleMap, en annan för MapFragment. Din kod bör se ut så här:

privat GoogleMap googleMap;
privat MapFragment mapFragment;

Nu kan i din onCreate() metod, skapa fragmentet. För att göra det, gör följande:

...
this.mapFragment = MapFragment.newInstance(); Initiera mapFragment objekt.
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.Add (R.id.mapContainer, mapFragment); Blåsa upp mapFragment inne i FrameLayout.
ft.commit(); Genomföra transaktionen.
this.mapFragment.getMapAsync(this); Anger MainActivity som OnMapReady motringning lyssnare...

För att vi ska kunna redigera vår karta senare, behöver vi en referens till det när det väl har skapats. Så, lägga till denna kod till din callback-metod av onMapReady():

this.googleMap = googleMap; Initiera objektet lokala GoogleMap.

Det är det! Vi har genomfört alla motringning lyssnare att vi behöver och har nu en hänvisning till vår GoogleMap objekt. Gå vidare och prova att köra appen på denna punkt. Du bör se din karta blåsa upp till FrameLayout i din activity_main.xml.

Interaktion:

Nu när vi har en referens till våra GoogleMap objekt, finns det en hel del coola saker som vi kan göra. Jag ska visa dig några exempel.

Rita en markör:

Att du vill markera en punkt på kartan. API kan du skapa markörer med valfritt innehåll inuti dem och placera dem på en viss plats. Prova detta i din app för att placera en markör:

...
MarkerOptions markerOptions = ny MarkerOptions();
markerOptions.position (nya LatLng (-12.34, 56.78)) / / markören på ges lat/lng.
.Visible(true) / / synliggöra markören.
.title ("hello world") / / innehåll av marker.
.icon(BitmapDescriptorFactory.fromResource(R.drawable.blue_dot)); Anpassad ikon.
Markör currentMarker = googleMap.addMarker(markerOptions); Lägg till markör och spara.
...

Rita en bana:

Du vet hur riktningar i faktiska Google Maps app drar din rutt på kartan? Väl med hänvisning till din karta objekt, kan du göra något liknande med ett snyggt objekt kallas en polylinje. Polylinjer kan du ansluta prickar mellan flera latitud/longitud koordinater på kartan. Här är ett exempel på en metod som du kan också sätta i din app:

...
Uppdateringar rutten på kartan med en given plats.
privata void updatePrimaryPath (nuvarande LatLng) {
PolylineOptions alternativ = nya PolylineOptions(); Skapa ny polylinje alternativ.
Options.Color(Color.Red).width(5).Visible(true); Polylinje attribut.
om (lastLatLng! = null) {
Options.Add(lastLatLng); Lägg till koordinaten polylinje.
Options.Add(Current); Lägg till koordinaten polylinje.
googleMap.addPolyline(options); Rita polylinje på karta.
}
lastLatLng = nuvarande; Ange den sista använda positionen som den nuvarande.
...

Centrering kamera på en plats:

En sista sak du kan göra med kartan som kommer att vara lätt användbart i din programmering strävanden centrering kameran på en viss latitud/longitud koordinat. Detta låter dig att automatiskt flytta vyn av kartan till olika ställen med olika zoomnivåer. Här är några genomförandet att komma igång:

...
Centrera kartan på en angiven plats med en önskad zoomnivå.
privata void centerMapOnLocation (LatLng loc) {< br > googleMap.animateCamera (CameraUpdateFactory.newLatLngZoom (loc, ZOOM_LEVEL));
}
...

Det finns massor av saker som du kan göra med Google Maps Android API. När du känner dig bekväm med grunderna, Känn dig fri att få utforska API och lägger till nya funktioner i din app.

Om du införlivas med Android bära din MapPlayground app, sedan huvudet på över till nästa steg att lära sig om Google Maps API för Android bära. Annars hoppa över till den sista steget!

Se Steg
Relaterade Ämnen

Realtid GPS Tracker med integrerad Google Maps

Detta projekt beskrivs hur du kan bygga en mobil realtid GPS tracker med integrerad Google Maps. Jag började detta projekt främst för att se om jag kan integrera alla olika bitar av hårdvara och programvara för att få en fungerande lösning, och det t...

Hur man sparar Google Maps offline på iPhone eller iPad

Den senaste versionen av Google Maps för iOS och Android kan du spara kartor över ditt val offline till din iPhone. Detta är mycket praktiskt om du kommer till ett område som saknar nätverksanslutning eller du helt enkelt inte har dataanslutning med...

Göra en karta bok med hjälp av Google Maps

den andra dagen jag letade på bokhandeln en gatan Guide för DuPage County, IL eftersom min flickvän är bor där och behöver en detaljerad vägkarta över. Tyvärr var den enda som de hade som var nära en för Cook County (som här), som inte innehåller någ...

Planera din rutt med Google Maps

har du någonsin undrar hur man får till en destination med köra/gå/ta kollektivtrafiken? Någonsin undrar om du är på väg är säker? Visste du att Google Maps ger anvisningar och kan visa dig "Gatuvy" bilder av de flesta någonstans i världen? I de...

Hur man hittar fantastiska bilder på Google Maps

hur man hittar fantastiska bilder på Google Maps...

Att skapa KML-filer för din anpassade Google Maps

KML (Keyhole Markup Language) är ett XML-baserat filformat som används för att Visa geografiska data i en jorden webbläsare som Google Earth, Google Maps och Google Maps för mobilen.Med KML, kan du Visa i stort sett allt på kartan. Du kan antingen e-...

Google Maps + motionscykel = virtuella Bike Ride

koppla upp din motionscykel till Google Maps och slå din tråkiga stationär cykel i en virtuell verklighet utflykt!Steg 1: Reservdelslista För att göra detta projekt, du kommer att behöva samla några delar:USB-tangentbordet som har piltangenterna.A wi...

Skriva ut Google Maps

Skriva ut kartor eller Vägbeskrivning från Google MapsSteg 1:Behöver skriva ut en karta eller vägbeskrivning att ta med dig? Du kan skriva ut Google Maps med så lätt!...

Hur man tar bort en pin på Google Maps

Släppa en pin i Google Maps kan du enkelt komma ihåg och dela en plats.Steg 1:1. Öppna Google Maps2. Sök efter en plats3. håll för att släppa en PIN-kod4. GJORT....

3D tryckt terräng från Google Maps med SketchUp

Detta instructable var anpassad från en genomgång på. Kolla upp det för mer sånt här!Gör dig själv en tjänst. Gå till Google maps. Gå till din favorit plats. Tryck på Ctrl, vänsterklicka och dra runt. Everthing får alla 3D! Och om du är i någon av st...

Mediatek linkit en - Bygg din egen spårning webbplats med hjälp av linkit en GPS, GPRS och JSP med Google karta

Först och främst mycket tack för Mediatek för skicka mig en Mediatek Linkit en styrelse. Jag är mycket glad å öppna förpackningen och arbeta med WIFI, Bluetooth, GPS, GSM, GPRS. Det är mycket trevligt. Ser utdata från varje kod har mitt sinne hoppa a...

"Rida" eller "Kör" på google karta

jag är inte säker på om någon har gjort det förut, jag använde en arduino ombord, en cykel med goole karta, sedan när jag rida min cykel hemma, en markör kommer att visa på google karta på vägen som jag satt och det kommer att flytta på sträckan när...

Linkit en - jämförelse med sköldar

Linkit en är en trevlig förpackning av alla antenner och bygga shields att göra många mobila enheter. Med bara 59$ det ge anläggningen av omkring 214$. Med massa integrerad styrelser sin monter som en unik ombord. Även göra mobiltelefon med lätt berö...

Lätt Park (Intel IoT)

Smart parkering System för tunnelbanaProjektöversikt:Vi föreslår att bygga ett system som gör det möjligt att hitta parkeringsplatser runt deras nuvarande närhet och göra anaytics från de uppgifter som samlats in.Android App: Kan du vet den närmaste...

PiDroidGPSTracker

För den #CUITPHackathon organiserade vid University of Colorado i Boulder på 11/15/2014, byggt vårt team en GPS-tracker med hjälp av en Raspberry Pi och en Android-enhet.Gruppmedlemmar: Sannas Bhatt, Gavin Joseph, Sanket Nasre och Vishal Nagaonkar. T...

Idiotsäker Smart Alarm klocka

Någonsin vakna till din väckarklocka bara att stänga av, lägga tillbaka ner, blunda för bara några sekunder... och hamna vakna upp mycket senare än du ville? Detta projekt syftar till att lösa det problemet genom att bygga en smart väckarklocka som k...

Kontrollera dina framsteg på långa resor

Långa transporter i en bil eller ett tåg eller ens en interkontinental flygning kan få ganska tråkigt särskilt under nattetid eller när landskapet är inte något speciellt. Det är trevligt att kunna kontrollera hur mycket avstånd är kvar måste täckas...

Mappning av San Francisco cisterner

Detta är en kartläggning projektet, som mappar det 170 cisterner av San Francisco.Detta är min första kartläggning projektet och tänkte jag skulle dela min upptäckter, tekniker och open source-verktyg för alla er karta-nördar där ute.Detta Instructab...

Felaktiga Data: Waterjet etsning datamängder

"Dålig Data" är en serie av tolv-visualiseringar av data, som jag etsade på aluminium honeycomb paneler använder en högtrycks vattenstråle maskin. De tar form av statiska objekt, som kollapsar tid i en enda synligt utrymme, betonar brusten ytan...