Android google maps v2

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

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.