Android google maps v2

Soyez le premier à donner votre avis sur cette source.

Vue 10 164 fois - Téléchargée 3 886 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

Messages postés
5350
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
29 juin 2020
97
J'avoue... mettre un lien vers la doc + un sample à la place de la description c'est franchement cahotique...
Messages postés
14780
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
4 août 2020
92
Hello,
Je n'ai pas testé le code, mais ça manque cruellement de commentaires et de description.
Quel est l'objectif de cette source?

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.