Android Google Map per visualizzare come image

Ho implementato Google Maps V2 nella mia applicazione android e ora vorrei fare qualcosa di diverso. Sto mostrando una posizione (longitudine, latitudine) con un marker. Il problema è che questo è mostrato nella mia attività come una mappa. Vorrei mostrarla come un ImageView e solo se qualcuno scatta su di esso mostra l'interface della mappa.

Fondamentalmente quello che voglio fare è un'anteprima statica della posizione e visualizzarla come un'image (con un canvasio e angoli arrotondati) Quando cliccate quindi apri le mappe e date tutte le funzionalità.

  • Le immagini JPEG hanno diversi valori di pixel su più dispositivi
  • Il server di authorization LinkedIn OAuth2 ha rilevato una condizione inaspettata
  • L'applicazione Android non si chiude dopo aver chiamato System.exit (0)
  • Android - Come get il valore dell'elemento selezionato da un filatore e inserirlo in una string?
  • Un ACTION_USER_PRESENT BroadcastReceiver non può essere registrato nel manifesto?
  • Il galleggiante duro richiede alcune funzioni in GCC
  • C'è un modo per mettere un frammento di mappa in un ImageView?

    Ogni aiuto che potete fornire apprezzerà molto.

    Grazie

  • Come rimuovere il bordo / ombra dai pulsanti di lollipop
  • Modificare il colore del text dell'intera applicazione in modo programmato
  • RecyclerView Swipe con una vista sotto di esso
  • Avviare un'altra attività facendo clic su un button
  • Reazione di authorization: Imansible accedere a SurfaceFlinger
  • L'intento non può essere risolto a un tipo di errore in eclipse
  • 2 Solutions collect form web for “Android Google Map per visualizzare come image”

    È ansible utilizzare il metodo di istantanea incorporato di Google Maps per catturare un'anteprima e visualizzarlo in un ImageView . È ansible ImageView l' ImageView in qualsiasi modo che desideri, e anche impostare un clickListener che fa qualcosa, quando viene cliccato l'anteprima. Ecco un esempio:

     LatLng latLng = new LatLng(35.0116363, 135.7680294); // Add Marker mMap.addMarker(new MarkerOptions().position(latLng)); // Center map on the marker CameraUpdate yourLocation = CameraUpdateFactory.newLatLngZoom(latLng, 4.0f); mMap.animateCamera(yourLocation); final ImageView mapPreview = (ImageView) findViewById(R.id.mapPreview); mapPreview.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // Hide the preview, to reveal the map mapPreview.setImageBitmap(null); mapPreview.setLayoutParams(new RelativeLayout.LayoutParams(0, 0)); // Or start Google Maps app // String uri = String.format(Locale.ENGLISH, "geo:%f,%f", 50.0, 0.1); // Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri)); // startActivity(intent); } }); mMap.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback() { @Override public void onMapLoaded() { // Make a snapshot when map's done loading mMap.snapshot(new GoogleMap.SnapshotReadyCallback() { @Override public void onSnapshotReady(Bitmap bitmap) { mapPreview.setLayoutParams(new RelativeLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); mapPreview.setImageBitmap(bitmap); // If map won't be used afterwards, remove it's views // ((FrameLayout)findViewById(R.id.map)).removeAllViews(); } }); } }); 

    C'è un'opzione leggermente diversa che può get lo stesso risultato e richiede una codifica minima, a condizione che la tua applicazione possa utilizzare la networking: puoi call l' API Google Maps statica per richiedere un'image di mappa con centro arbitrario, livello di zoom, dimensione e altre caratteristiche come marcatori e routes.

    Ad esempio il link:

    https://maps.googleapis.com/maps/api/staticmap?center=40.714728,-73.998672&zoom=14&size=600×300

    produce l'image seguente:

    immettere qui la descrizione dell'immagine

    Questo rende molto facile visualizzare una mappa in un widget ImageView : è sufficiente creare l'URL appropriato dai dati e le size di posizione e visualizzare l'image con uno qualsiasi dei frameworks di caricamento dell'image come Picasso, Volley e c. Abbiamo usato questa funzionalità per un paio d'anni.

    Ciò è particolarmente utile quando si visualizza, ad esempio, un ListView di piccole mappe. In queste situazioni, richiedere n snapshot sarà problematico, mentre i download di immagini n dovrebbe funzionare bene.


    Una terza opzione, che sarà disponibile nella prossima settimana o così, secondo questo annuncio , è la nuova modalità Lite Maps che verrà rilasciata come parte di Google Play Services 6.5:

    Inoltre, c'è anche una nuova opzione di mappa "lite mode", ideale per le situazioni in cui si desidera fornire una serie di mappe più piccole, o una mappa così piccola che un'interazione significativa è impraticabile, ad esempio una miniatura in un elenco. Una mappa di modalità lite è un'image bitmap di una mappa in un determinato livello di posizione e zoom.

    In modalità lite, i markers e le forms vengono disegnati a lato client in cima all'image statica, pertanto è ancora pieno controllo su di essi. La modalità Lite support tutti i tipi di mappa, il livello di Posizione e un sottoinsieme della funzionalità di una mappa completamente intertriggers.

    Suona esattamente come quello che ti serve, a condizione che puoi aspettare alcuni giorni per l'SDK aggiornato. 🙂

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.