MainActivity.java
1    package com.example.patrice.proj_google_map01; 
2     
3    import android.support.v4.app.FragmentActivity; 
4    import android.support.v7.app.AppCompatActivity; 
5    import android.os.Bundle; 
6    import android.util.Log; 
7    import android.widget.TextView; 
8    import android.widget.Toast; 
9     
10   import com.google.android.gms.maps.CameraUpdateFactory; 
11   import com.google.android.gms.maps.GoogleMap; 
12   import com.google.android.gms.maps.SupportMapFragment; 
13   import com.google.android.gms.maps.model.CameraPosition; 
14   import com.google.android.gms.maps.model.LatLng; 
15   import com.google.android.gms.maps.model.Marker; 
16   import com.google.android.gms.maps.model.MarkerOptions; 
17    
18    
19   import com.google.android.gms.maps.GoogleMap.OnMapClickListener;      //  si absent on doit ajouter GoogleMap.xxxxx 
20   import com.google.android.gms.maps.GoogleMap.OnMapLongClickListener;  //  si absent on doit ajouter GoogleMap.xxxxx 
21   import com.google.android.gms.maps.GoogleMap.OnMarkerDragListener;    //  si absent on doit ajouter GoogleMap.xxxxx 
22    
23   public class MainActivity extends FragmentActivity implements OnMapLongClickListener  , OnMapClickListener , OnMarkerDragListener 
24   { 
25    
26       private static GoogleMap map; 
27       TextView tvLocInfo; 
28    
29       @Override 
30       protected void onCreate(Bundle savedInstanceState) { 
31           super.onCreate(savedInstanceState); 
32           setContentView(R.layout.activity_main); 
33    
34           map = ((SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map)).getMap(); 
35           map.setOnMarkerDragListener(this); 
36           map.setOnMapLongClickListener(this); 
37           map.setOnMapClickListener(this); 
38    
39           //map.getUiSettings().setZoomControlsEnabled(true); 
40           //map.getUiSettings().setCompassEnabled(true); 
41           //map.getUiSettings().setMyLocationButtonEnabled(true); 
42    
43    
44    
45           map.setMapType(GoogleMap.MAP_TYPE_HYBRID); 
46           map.setMyLocationEnabled(true); // permission ? 
47           map.setTrafficEnabled(true); 
48           map.setIndoorEnabled(true); 
49           map.setBuildingsEnabled(true); 
50           map.getUiSettings().setZoomControlsEnabled(true); 
51           map.getUiSettings().setAllGesturesEnabled(true); 
52    
53    
54   /*      OK  : 
55           map.setMyLocationEnabled(true);  doit être déclaré avant 
56           map.getUiSettings().setMyLocationButtonEnabled(true); 
57           map.getUiSettings().setCompassEnabled(true); 
58           map.getUiSettings().setZoomControlsEnabled(true); 
59   */ 
60           tvLocInfo = (TextView)findViewById(R.id.locinfo); 
61    
62           CameraPosition INIT = 
63                   new CameraPosition.Builder() 
64                           .target(new LatLng(44, 2)) 
65                           .zoom(17.5F) 
66                         //  .bearing(300F) // orientation 
67                           .tilt( 50F) // viewing angle 
68                           .build(); 
69    
70           // use map to move camera into position 
71           map.moveCamera( CameraUpdateFactory.newCameraPosition(INIT) ); 
72    
73           //create initial marker 
74           map.addMarker( new MarkerOptions() 
75                   .position( new LatLng(44, 2) ) 
76                   .title("Location") 
77                   .snippet("First Marker")).showInfoWindow(); 
78    
79       } 
80    
81       @Override 
82       public void onMapLongClick(LatLng latLng) { 
83           map.addMarker(new MarkerOptions() 
84                   .position(latLng) 
85                   .draggable(true)); 
86           tvLocInfo.setText("New marker added@" + latLng.toString()); 
87       } 
88    
89       @Override 
90       public void onMapClick(LatLng latLng) { 
91           map.animateCamera(CameraUpdateFactory.newLatLng(latLng)); 
92       } 
93    
94       @Override 
95       public void onMarkerDragStart(Marker marker) { 
96           tvLocInfo.setText("Marker " + marker.getId() + " DragStart"); 
97       } 
98    
99       @Override 
100      public void onMarkerDrag(Marker marker) { 
101          tvLocInfo.setText("Marker " + marker.getId() + " Drag@" + marker.getPosition()); 
102      } 
103   
104      @Override 
105      public void onMarkerDragEnd(Marker marker) { 
106   
107          LatLng dragPosition = marker.getPosition(); 
108          double dragLat = dragPosition.latitude; 
109          double dragLong = dragPosition.longitude; 
110          Log.i("info", "on drag end :" + dragLat + " dragLong :" + dragLong); 
111          Toast.makeText(getApplicationContext(), "Marker Dragged..!", Toast.LENGTH_LONG).show(); 
112   
113          tvLocInfo.setText("Marker " + marker.getId() + " DragEnd"); 
114   
115      } 
116  } 
117