Code example for GoogleMap

Methods: addPolyline, animateCamera, getCameraPosition, moveCamera

0
    	 
    	if(this.carte==null) {
    		Log.e(LOGCAT_TAG+"_mapnull", "Map is null...");
    		this.initialiserCarte();
    	} 
    	Log.w(LOGCAT_TAG, "carte zoom before : " + carte.getCameraPosition().zoom);
    	//carte.moveCamera(CameraUpdateFactory.newLatLngZoom(pos,ZOOM_LEVEL)); 
    	//carte.animateCamera(CameraUpdateFactory.zoomTo(ZOOM_LEVEL)); 
    	CameraPosition cameraPosition = new CameraPosition.Builder()
        .target(new LatLng(latitude,longitude))      // Sets the center of the map to Mountain View
        .zoom(ZOOM_LEVEL)                   // Sets the zoom
        .build();                   // Creates a CameraPosition from the builder
    	this.carte.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
    	 
    	//this.carte.moveCamera(CameraUpdateFactory.newLatLng(pos)); 
    	 //this.carte.animateCamera(CameraUpdateFactory.zoomTo(ZOOM_LEVEL)); 
    	Log.w(LOGCAT_TAG, "carte zoom after : " +carte.getCameraPosition().zoom);
    	//carte.clear(); 
    } 
     
    /** 
     * Initialise la carte pour une nouvelle course : supprime les diff�rent trac�, sauf le parcours g�n�r� 
     * @param longitude La longitude du sportif 
     * @param latitude La latitude du sportif 
     */ 
    public void initialiserCartePourNouvelleCourse() { 
    	if(traces != null) {
        	for(Polyline t : traces) {
        		t.remove();
        	}    		 
    	} 
    	this.traces=null;
		this.besoinDunNouveauPolyline=true;
    } 
     
     
    /** 
     * Met a jour la carte a partir des coordonn�es donn�es 
     * (Affiche le trac� de l'utilisateur sur la carte) 
     * @param longitude La longitude du sportif 
     * @param latitude La latitude du sportif 
     */ 
    public void mettreAJourCarte(double latitude, double longitude, float bearing, float zoom) {
    	Log.v(LOGCAT_TAG, "Mise � jour de la carte");
    	if(traces==null || traces.isEmpty()) {
    		Log.d(LOGCAT_TAG, "traces = null or is empty");
    		this.initialiserCarte(latitude, longitude);
    	} 
    	if(besoinDunNouveauPolyline) {
    		this.creerNouveauPolyline(latitude, longitude);
    		this.besoinDunNouveauPolyline=false;
    	} 
		Polyline lastTrace = traces.getLast();
    	LatLng pos = new LatLng(latitude,longitude);
    	List<LatLng> points = lastTrace.getPoints();
    	points.add(pos);
    	CameraPosition cameraPosition = new CameraPosition.Builder()
        .target(new LatLng(latitude,longitude))      // Sets the center of the map to Mountain View
        .zoom(zoom)                   // Sets the zoom
        .bearing(bearing)                // Sets the orientation of the camera to east
        .tilt(TILT_ANGLE)                   // Sets the tilt of the camera to 30 degrees
        .build();                   // Creates a CameraPosition from the builder
    	this.carte.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
        lastTrace.setPoints(points);
        //traces.set(traces.size(), lastTrace); 
    } 
    /** 
     * Methode qui permet de demander la cr�ation d'un nouveau polyline. 
     * Elle est appel� dans {@link com.makeursport.CourseEnCours} une fois 
     * que l'utilisateur sort de pause 
     */ 
    public void demanderNouveauPolyline() { 
    	this.besoinDunNouveauPolyline=true;
    } 
     
    /** 
     * Methode qui creer un nouveau Polyline dans la liste {@link #traces} 
     * @param lat la latitude du point d'origine 
     * @param lng la longitude du point d'origine 
     */ 
    private void creerNouveauPolyline(double lat, double lng) {
    	LatLng pos = new LatLng(lat, lng);
    	traces.add(carte.addPolyline(new PolylineOptions().add(pos).color(getResources().getColor(R.color.holo_blue)).visible(true)));
    } 
    /** 
     * Methode qui met la carte transparente. Permet de regler un probl�me de GoogleMaps 
     * @param group la vu qui contient la carte que l'on doit mettre transparente 
     */