ciao a tutti..
sto realizzando un applicazione web utilizzando le api di Google Maps.
Provando l'applicazione con i vari browser risulta funzionale per tutti tranne per Firefox.
Analizzando la "console degli errori" mi risultano undefined alcune variabili dichiarate al di fuori delle funzioni per far si che tutte le funzioni create possono utilizzarle.
L'applicazione consiste nel permettere agli utenti di scegliere in un menu a tendina dei percorsi prestabiliti e di inserire una distanza entro la quale i punti di interesse (anch'essi prestabiliti) possono essere visualizzati.
vi posto il codice sperando mi possiate aiutare a risolvere il problema:
<script type="text/javascript">
var map;
var panorama;
var gdir;
var directionsDisplay;
var directionsService = new google.maps.DirectionsService();
var geocoder;
var panorama;
var dir;
function initialize() {
//in questa funzione viene inizializzata la mappa in cui visualizzare il percorso e i
marcatori, la panoramica che consiste nella street view e nel pannello in cui inserire le
indicazioni stradali
geocoder = new google.maps.Geocoder();
directionsDisplay = new google.maps.DirectionsRenderer();
var mapCenter = new GLatLng(45.4636889,9.188140799999928);
var mapOptions = {
center: mapCenter,
zoom: 12,
mapTypeId: google.maps.MapTypeId.ROADMAP,
streetViewControl: true
};
if(document.getElementById)
map = new GMap2(document.getElementById("map_canvas1"),mapOp tions);
else
map = new GMap2(document.all["map_canvas1"],mapOptions);
map.setCenter(new GLatLng(45.4636889,9.188140799999928),16);
map.addOverlay(new GLayer("com.panoramio.all"));
map.addOverlay(new GLayer("org.wikipedia.it"));
map.addOverlay(new GStreetviewOverlay());
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
myPOV = {yaw:370.64659986187695,pitch:-20};
svOpts = {latlng:mapCenter, pov:myPOV};
if(document.getElementById)
panorama = new
GStreetviewPanorama(document.getElementById("map_c anvas2"), svOpts);
else
panorama = new GStreetviewPanorama(document.all["map_canvas2"], svOpts);
GEvent.addListener(map, 'click', function(overlay, latlng) {
panorama.setLocationAndPOV(latlng);
});
if(document.getElementById)
gdir = new GDirections(map, document.getElementById("directions"));
else
gdir = new GDirections(map, document.all["directions"]);
} // fine funzione initialize
function calcRoute() {
//in questa funzione vengono prelevati i dati dal form compilato dall'utente,
eseguiti i calcoli opportuni per stabilire se i punti di interesse sono vicini al percorso
entro la soglia massima inserita dall'utente e se questo avviene viene creato il Marker
var waypts = [];
var start = '<% out.print(request.getSession().getAttribute("start ")); %>';
var destination = '<%out.print(request.getSession().getAttribute("en d")); %>';
var request = {
origin:'<% out.print(request.getSession().getAttribute("start ")); %>',
destination:'<%out.print(request.getSession().getA ttribute("end")); %>',
travelMode: google.maps.DirectionsTravelMode.WALKING
};
directionsService.route(request, function(result, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(result);
}
else{
alert(status);
}
<% DatastoreService ds3 = DatastoreServiceFactory.getDatastoreService();
Query q_point2 = new Query("PI");
PreparedQuery pq_point2 = ds3.prepare(q_point2);
%>
var distanza = '<% out.print(request.getSession().getAttribute("dista nza")); %>';
var coord_percorso = '<% out.print(request.getSession().getAttribute("coord ")); %>';
var spazio = coord_percorso.indexOf(" ");
var single_coord = new Array();
var i = 0;
while(spazio>=0){
//MEMORIZZO LE COORDINATE DEL PERCORSO IN UN ARRAY
single_coord[i] = coord_percorso.substring(0,spazio-2);
coord_percorso = coord_percorso.substring(spazio+1);
spazio = coord_percorso.indexOf(" ");
i++;
}
var coords = "from: "+start+" to: "+destination;
var mode = G_TRAVEL_MODE_WALKING;
// or G_TRAVEL_MODE_WALKING
gdir.load(coords, {travelMode:mode});
//eseguo calcoli per soddisfare la seguente condizione
if(dist < miglia2){
var location = new GLatLng(p_lat,p_lon);
//p_lat e p_lon sono coordinate di punti che prelevo nei calcoli
var titolo = nome; //nome è una variabile stabilita nei calcoli
map.addOverlay(createMarker(location,titolo));
}
});
}
function createMarker(position,titolo){
var m = new GMarker(position);
GEvent.addListener(m, "click", function() {
var txt = ""+titolo+"";
map.openInfoWindowHtml(position,txt);
panorama.setLocationAndPOV(position);
});
return m;
}
</script>
le variabili che sono undefined secondo Firefox sono:
- gdir che mi serve per visualizzare le indicazioni stradali;
- map che è la mappa in cui devo visualizzare il percorso e i marcatori
aiutatemi vi prego!!!