Salve a tutti, ho provato a cercare altri topic simili ma ne ho trovato solo 1 che include però mappe fisse senza calcolo del percorso con partenza variabile quindi la soluzione non si adatta alle mie esigenze.
In pratica devo inserire 2 mappe con calcolo del percorso con partenza variabile in 2 div diversi nella stessa pagina.
qui sotto ho postato il codice da me utilizzato finora
il problema della mappa1 è che se gli faccio calcolare il percorso me lo inserisce in directions2 di mappa 2
i problemi di mappa2 sono:
1)la mappa2 che si vede al caricamento è identica a mappa1, ma appena gli faccio calcolare il percorso si corregge
2)se imposto in mappa 1 un indirizzo di partenza, viene automaticamente assegnato anche a mappa 2
Vi sarò infinitamente grato se riuscirete a dipanare questo dubbio, ho cambiato un bel po di variabili ma senza esito positivo!
Grazie
codice:
<body onload="initialize();initialize2()" onunload="GUnload()">
<div>
<h3>Titolo Mappa1</h3>
<script type="text/javascript">
var map;
var gdir;
var geocoder = null;
var addressMarker;
function initialize() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map_canvas"));
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(45.476744,9.20738), 13);
var marker = new GMarker(new GLatLng(45.476744,9.20738))
map.addOverlay(marker);
marker.openInfoWindowHtml("Chiesa di Santa Prisca
Via di Santa Prisca, 11
00153 Roma");
gdir = new GDirections(map, document.getElementById("directions"));
GEvent.addListener(gdir, "error", handleErrors);
}
}
function setDirections(fromAddress) {
locale="it";
gdir.load("from: " + fromAddress + " to: Via di Santa Prisca, 11, 00153 Roma");
}
function handleErrors(){
if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
alert("Indirizzo non trovato");
else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
alert("Si è verificato un errore nella geocodifica degli indirizzi");
else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
alert("Manca un parametro");
else if (gdir.getStatus().code == G_GEO_BAD_KEY)
alert("Errore nella Key Api.");
else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
alert("La richiesta non puo' essere correttamente risolta.");
else alert("Si è verificato un errore");
}
</script>
<div id="map_canvas" style="width: 580px; height: 400px"></div>
<div id="location">
<form action="#" onsubmit="setDirections(this.partenza.value); return false">
Esempio: "Viale Marconi 100, roma"
parti da:<input type="text" name="partenza"/><input type="submit" value="Calcola"/><input type='button' value='Stampa' onclick='Stampa()'/>
</form>
</div>
<div id="directions" style="width: 580px; height:340px; overflow:auto"></div>
</div>
<div>
<h3>Titolo mappa2</h3>
<script type="text/javascript">
var map2;
var gdir;
var geocoder = null;
var addressMarker;
function initialize2() {
if (GBrowserIsCompatible()) {
map2 = new GMap2(document.getElementById("map_canvas2"));
map2.addControl(new GSmallMapControl());
map2.addControl(new GMapTypeControl());
map2.setCenter(new GLatLng(45.476744,9.20738), 13);
var marker = new GMarker(new GLatLng(45.476744,9.20738))
map2.addOverlay(marker);
marker.openInfoWindowHtml("Villa Piccolomini
Via Aurelia, 164
00165 Roma");
gdir = new GDirections(map2, document.getElementById("directions2"));
GEvent.addListener(gdir, "error", handleErrors);
}
}
function setDirections(fromAddress) {
locale="it";
gdir.load("from: " + fromAddress + " to: Via Aurelia, 164, 00165 Roma");
}
function handleErrors(){
if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
alert("Indirizzo non trovato");
else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
alert("Si è verificato un errore nella geocodifica degli indirizzi");
else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
alert("Manca un parametro");
else if (gdir.getStatus().code == G_GEO_BAD_KEY)
alert("Errore nella Key Api.");
else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
alert("La richiesta non puo' essere correttamente risolta.");
else alert("Si è verificato un errore");
}
</script>
<div id="map_canvas2" style="width: 580px; height: 400px"></div>
<div id="location">
<form action="#" onsubmit="setDirections(this.partenza2.value); return false">
Esempio: "Viale Marconi 100, roma"
parti da:<input type="text" name="partenza2" value="Via di Santa Prisca, 11, 00153 Roma"/><input type="submit" value="Calcola"/><input type='button' value='Stampa' onclick='Stampa()'/>
</form>
</div>
<div id="directions2" style="width: 580px; height:340px; overflow:auto"></div>
</div>
</body>