Ajouter les markeur sur ma google map
Bonjour,
Je suis en train de développer une application Android qui va me permettre de géolocaliser des distributeurs. J'ai déjà créé la base de données et j'ai un webservice (sous Tomcat) pour récupérer les données. Mon problème est que je ne peux pas afficher les marqueurs sur la carte.
Voici le code que j'ai déjà réalisé :
Merci d'avance ;)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
| public class MapsActivity extends FragmentActivity implements LocationListener {
LoginTask loginTask;
Marker markers ;
MarkerOptions marker;
private ProgressDialog progressDialog;
private GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
Map();
SupportMapFragment mf=(SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
mMap = mf.getMap();
mMap.setMyLocationEnabled(true);
mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
//addTwitterMap();
//addTwitterMap1();
setUpMapIfNeeded();
}
private void setUpMapIfNeeded() {
// Do a null check to confirm that we have not already instantiated the map.
if (mMap == null) {
// Try to obtain the map from the SupportMapFragment.
mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
.getMap();
// Check if we were successful in obtaining the map.
if (mMap != null) {
//setUpMap();
}
}
}
@Override
protected void onResume() {
super.onResume();
setUpMapIfNeeded();
}
public void Map() {
if (loginTask != null
&& loginTask.getStatus() != LoginTask.Status.FINISHED) {
loginTask.cancel(true);
}
loginTask = (LoginTask) new LoginTask()
.execute(0);
}
@Override
public void onLocationChanged(Location location) {
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
class LoginTask extends
AsyncTask<Integer, Integer, Integer> {
List<Exception> exceptions = new ArrayList<Exception>();
@Override
protected void onPreExecute() {
progressDialog = new ProgressDialog(MapsActivity.this);
progressDialog.setMessage(getResources()
.getString(R.string.working));
progressDialog.show();
super.onPreExecute();
}
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
}
@Override
protected Integer doInBackground(Integer... requests) {
try {
ObjectMapper mapper = new ObjectMapper();
HttpGet request = new HttpGet(ApplicationProperties.getInstance().getServiceUrl()
+ "/service/dab");
HttpResponse response = new DefaultHttpClient().execute(request);
List<Dab> dabList = mapper.readValue(Utils.stringFromInputStream(response.getEntity().getContent()),
mapper.getTypeFactory().constructCollectionType(List.class, Dab.class));
for (Dab dab:dabList) {
markers = mMap.addMarker(new MarkerOptions()
.position(new LatLng(dab.getLatitude(), dab.getLongitude()))
.position(new LatLng(dab.getLatitude(), dab.getLongitude()))
.title(dab.getAdresse())
.snippet(dab.getAdresse())
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED)));
}
} catch (Exception e) {
exceptions.add(e);
}
return 0;
}
@Override
protected void onPostExecute(Integer result) {
progressDialog.dismiss();
if (exceptions.size() > 0) {
mMap.addMarker(marker);
} |