46,7 → 46,7 |
String valeurCommune = "Bourges"; // j'aurais préféré Bort-les-Orgues |
LatLng centreFrance = null; |
LatLng pointCommune = null; |
String codeCommune = ""; |
String codeLoc = ""; |
|
int niveauZoom = 6; |
|
97,18 → 97,22 |
} |
|
public void obtenirInfosCommunes(LatLng coord) { |
// Remise à zéro des infos restantes d'une ancienne requete |
valeurCommune = ""; |
codeLoc = ""; |
|
oMediateur.obtenirInformationCoord(this, coord.lat(), coord.lng()); |
} |
|
public void mettreAJourInfos(final LatLng pointNouvelleCommune, String infosComplementaires, int zoom) { |
public void mettreAJourInfos(final LatLng pointNouvelleCommune, int zoom) { |
GoogleMap mapNulle = null; |
if(nmk != null) { |
nmk.setMap(mapNulle); |
} |
pointCommune = pointNouvelleCommune; |
nmk = fabriquerMarqueur(pointCommune, infosComplementaires); |
nmk = fabriquerMarqueur(pointCommune); |
nmk.setMap(map); |
afficherInfoMarker(nmk); |
afficherInfoMarker(nmk, construireContenuInfoMarker(nmk)); |
recentrerCarte(nmk.getPosition()); |
map.setZoom(zoom); |
} |
171,7 → 175,7 |
if(nmk != null) { |
nmk.setMap(mapNulle); |
} |
nmk = fabriquerMarqueur(pointCommune,""); |
nmk = fabriquerMarqueur(pointCommune); |
nmk.setMap(map); |
info.setContent("<div id=\"info_contenu\">"+ |
"Déplacez ce marqueur pour localiser votre observation (commune et coordonnées)<br />" |
183,7 → 187,7 |
} |
|
public void AfficherMessageAucuneInfos() { |
mettreAJourInfos(centreFrance,"", niveauZoom); |
mettreAJourInfos(centreFrance, niveauZoom); |
Window.alert("Aucune information pour le nom donné"); |
} |
|
207,7 → 211,8 |
bouton.addListener("click", new EventCallback() { |
@Override |
public void execute(EventObject e) { |
EntiteGeographiqueObservation infosCommune = new EntiteGeographiqueObservation(codeCommune,valeurCommune,null,null); |
EntiteGeographiqueObservation infosCommune = new EntiteGeographiqueObservation(codeLoc,valeurCommune,null,null); |
// TODO: ajouter pays à tout Ceci |
infosCommune.setLat(pointCommune.lat()+""); |
infosCommune.setLon(pointCommune.lng()+""); |
oMediateur.rafraichirSaisieCommuneObservation(infosCommune); |
254,20 → 259,23 |
|
String nouvelleValeurCommune = infos.getZoneGeo(); |
valeurCommune = nouvelleValeurCommune; |
if (infos.getIdZoneGeo() != null) { |
codeCommune = Util.convertirChaineZoneGeoVersDepartement(infos.getIdZoneGeo()); |
} else { |
codeCommune = ""; |
codeLoc = ""; |
if(infos.getIdZoneGeo() != null) { |
if (infos.getPays().equals("FR")) { |
codeLoc = Util.convertirChaineZoneGeoVersDepartement(infos.getIdZoneGeo()); |
} else { |
codeLoc = infos.getPays(); |
} |
} |
pointCommune = coord; |
|
mettreAJourInfos(coord, "", niveauZoom); |
mettreAJourInfos(coord, niveauZoom); |
} |
|
masquerChargement(false); |
} |
|
public Marker fabriquerMarqueur(LatLng pointMarqueur, final String texte) { |
public Marker fabriquerMarqueur(LatLng pointMarqueur) { |
// ajout de marqueurs déplacables, qui affichent une bulle d'information |
MarkerOptions options = MarkerOptions.create(); |
options.setDraggable(true); |
278,6 → 286,7 |
|
@Override |
public void handle(MouseEvent event) { |
afficherInfoMarker(marker, construireContenuPartielInfoMarker(marker)); |
obtenirInfosCommunes(event.getLatLng()); |
} |
}); |
298,7 → 307,7 |
info.close(); |
infoOuverte = false; |
} else { |
afficherInfoMarker(marker); |
afficherInfoMarker(marker, construireContenuPartielInfoMarker(marker)); |
infoOuverte = true; |
} |
} |
328,7 → 337,7 |
return carteAjoutee; |
} |
|
public void afficherInfoMarker(Marker marker) { |
public String construireContenuInfoMarker(Marker marker) { |
final String htmlBoutonOk = "<br /><button id=\"okMap\" class=\"x-btn-text\" type=\"button\">OK</button>"; |
|
String contenuMarker = ""; |
339,23 → 348,58 |
marker.setPosition(point); |
niveauZoom = 6; |
} |
contenuMarker = "<div id=\"info_contenu\">"+ |
"Aucun nom de lieu trouvé à cet emplacement <br />" |
+"Déplacez ce marqueur pour localiser votre observation (nom de lieu et coordonnées)<br />" |
+"longitude=" |
+ Util.tronquerNombrePourAffichage("" + marker.getPosition().lng(), 5) + "<br />latitude=" |
+ Util.tronquerNombrePourAffichage("" + marker.getPosition().lat(), 5) + "</div>"; |
contenuMarker = |
"<div id=\"info_contenu\">"+ |
"Aucun nom de lieu trouvé à cet emplacement <br />" |
+"Déplacez ce marqueur pour localiser votre observation (nom de lieu et coordonnées)<br />" |
+"longitude="+Util.tronquerNombrePourAffichage(""+marker.getPosition().lng(), 5)+"<br />" |
+"latitude="+Util.tronquerNombrePourAffichage(""+marker.getPosition().lat(), 5)+ |
"</div>"; |
} else { |
contenuMarker = "" |
+valeurCommune+" ("+codeCommune+")<br />" |
+"longitude=" |
+ Util.tronquerNombrePourAffichage("" + marker.getPosition().lng(), 5) + "<br />latitude=" |
+ Util.tronquerNombrePourAffichage("" + marker.getPosition().lat(), 5) ; |
String chaineCommune = valeurCommune + ((codeLoc.isEmpty()) ? "" : " ("+codeLoc+")"); |
contenuMarker = |
"<div id=\"info_contenu\">"+ |
chaineCommune+"<br />" |
+"longitude="+Util.tronquerNombrePourAffichage(""+marker.getPosition().lng(), 5)+"<br />" |
+"latitude="+Util.tronquerNombrePourAffichage(""+marker.getPosition().lat(), 5)+ |
"</div>"; |
} |
|
info.setContent(contenuMarker+ htmlBoutonOk); |
info.open(map, marker); |
return contenuMarker+ htmlBoutonOk; |
} |
|
public String construireContenuPartielInfoMarker(Marker marker) { |
final String htmlBoutonOk = "<br /><button id=\"okMap\" class=\"x-btn-text\" type=\"button\">OK</button>"; |
|
String contenuMarker = ""; |
|
contenuMarker = |
"<div id=\"info_contenu\">"+ |
"<div class=\"recherche_infos_zone_geo\">"+ |
"<div class=\"recherche_infos_zone_geo_en_cours\">"+ |
"<img src=\"chargement_carte.gif\" />"+ |
"<div>"+ |
"Recherche du nom de lieu en cours... <br />"+ |
"Cela peut prendre un moment"+ |
"</div>"+ |
"<hr class=\"nettoyage\" />"+ |
"</div>"+ |
"Si vous ne désirez que les coordonnées, vous pouvez cliquer dès maintenant sur OK"+ |
"</div>"+ |
"longitude="+Util.tronquerNombrePourAffichage("" + marker.getPosition().lng(), 5)+"<br />"+ |
"latitude="+Util.tronquerNombrePourAffichage("" + marker.getPosition().lat(), 5)+ |
"</div>"; |
|
return contenuMarker+ htmlBoutonOk; |
} |
|
public void afficherInfoMarker(Marker marker, String contenuInfo) { |
|
info.setContent(contenuInfo); |
info.open(map, marker); |
|
pointCommune = marker.getPosition(); |
|
info.addDomReadyListenerOnce(new InfoWindow.DomReadyHandler() { |
@Override |
public void handle() { |
365,6 → 409,12 |
|
recentrerCarte(marker.getPosition()); |
} |
|
public void afficherCarteEnAttenteAvecMarker(double lat, double lon) { |
pointCommune = LatLng.create(lat, lon); |
nmk.setPosition(pointCommune); |
afficherInfoMarker(nmk, construireContenuPartielInfoMarker(nmk)); |
} |
|
public double[] getCoordsCentreFrance() { |
double[] coords = {47.0504, 2.2347}; |