Android google maps v2

Soyez le premier à donner votre avis sur cette source.

Vue 9 692 fois - Téléchargée 3 654 fois

Description

android google maps v2
https://developers.google.com/maps/documentation/android/

 
package com.example.androidmapsv2; 

import java.util.ArrayList; 
import java.util.List; 

import com.google.android.gms.maps.CameraUpdateFactory; 
import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.GoogleMap.CancelableCallback; 
import com.google.android.gms.maps.GoogleMap.OnMapClickListener; 
import com.google.android.gms.maps.MapFragment; 
import com.google.android.gms.maps.model.LatLng; 
import com.google.android.gms.maps.model.MarkerOptions; 
import com.google.android.gms.maps.model.Polyline; 
import com.google.android.gms.maps.model.PolylineOptions; 

import android.os.Bundle; 
import android.app.Activity; 
import android.app.FragmentManager; 
import android.graphics.Color; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.SeekBar; 
import android.widget.TextView; 
import android.widget.Toast; 

public class MainActivity extends Activity  
 implements OnMapClickListener{ 

 private GoogleMap myMap; 
 PolylineOptions polylineOptions; 
 Polyline polyline; 
 List<LatLng> listPoint; 
 int currentPt; 
  
 TextView info; 
 SeekBar zoomBar; 
  
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 
         
        FragmentManager myFragmentManager = getFragmentManager(); 
        MapFragment myMapFragment =  
          (MapFragment)myFragmentManager.findFragmentById(R.id.map); 
        myMap = myMapFragment.getMap(); 
         
        myMap.setOnMapClickListener(this); 
         
        listPoint = new ArrayList<LatLng>(); 
        clearPolyline(); 
         
        zoomBar = (SeekBar)findViewById(R.id.zoombgar); 
        Button btnClear = (Button)findViewById(R.id.clear); 
        Button btnAnimate = (Button)findViewById(R.id.animate); 
        Button btnStop = (Button)findViewById(R.id.stopanimate); 
        info = (TextView)findViewById(R.id.info); 
         
        btnClear.setOnClickListener(new OnClickListener(){ 

   @Override 
   public void onClick(View arg0) { 
    clearPolyline(); 
   }}); 

        btnAnimate.setOnClickListener(btnAnimateOnClickListener); 
         
        btnStop.setOnClickListener(new OnClickListener(){ 

   @Override 
   public void onClick(View arg0) { 
    myMap.stopAnimation(); 
   }}); 
         
        myMap.setMapType(GoogleMap.MAP_TYPE_HYBRID); 
        myMap.getUiSettings().setZoomControlsEnabled(true); 
        myMap.getUiSettings().setCompassEnabled(true); 
        myMap.getUiSettings().setAllGesturesEnabled(true); 
    } 
     
    OnClickListener btnAnimateOnClickListener = 
      new OnClickListener(){ 

    @Override 
    public void onClick(View v) { 
     if(listPoint==null || listPoint.isEmpty()){ 
      Toast.makeText(getApplicationContext(),  
        "Not enought point!",  
        Toast.LENGTH_LONG).show(); 
     }else{ 

      float zoomValue = (float)(zoomBar.getProgress() + 2); 
       
      myMap.animateCamera( 
        CameraUpdateFactory.zoomTo(zoomValue),  
        5000, 
        MyCancelableCallback);       
       
      currentPt = 0-1; 
       
      info.setText("Zoom to: " + String.valueOf(zoomValue)); 

     } 
    } 
      
    }; 
     
    private void clearPolyline(){ 
     if(polyline != null){ 
      polyline.remove(); 
     } 
      
     polylineOptions = new PolylineOptions(); 
     polylineOptions.color(Color.RED); 
      
     listPoint.clear(); 
      
     myMap.clear(); 
    } 


 @Override 
 public void onMapClick(LatLng point) { 
  myMap.addMarker(new MarkerOptions().position(point).title(point.toString())); 

  polylineOptions.add(point); 
  if(polyline != null){ 
   polyline.remove(); 
  } 
   
  polyline = myMap.addPolyline(polylineOptions); 
  listPoint.add(point); 
 } 
  
 CancelableCallback MyCancelableCallback = 
   new CancelableCallback(){ 

    @Override 
    public void onCancel() { 
     info.setText("onCancel()"); 
    } 

    @Override 
    public void onFinish() { 
     if(++currentPt < listPoint.size()){ 
      myMap.animateCamera( 
        CameraUpdateFactory.newLatLng(listPoint.get(currentPt)),  
        5000, 
        MyCancelableCallback); 
      info.setText("Animate to: " + listPoint.get(currentPt)); 
     }else{ 
      info.setText("onFinish()"); 
     } 
      
    } 
   
 }; 

} 

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

BunoCS
Messages postés
14711
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
24 janvier 2020
90
Hello,
Je n'ai pas testé le code, mais ça manque cruellement de commentaires et de description.
Quel est l'objectif de cette source?
Twinuts
Messages postés
5341
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
10 décembre 2019
89
J'avoue... mettre un lien vers la doc + un sample à la place de la description c'est franchement cahotique...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.