Ciao a tutti,
Stavo creando una pagina in cui includere una mappa di google...
la mia intenzione era di caricare in stile Ajax (una chiamata XHTML asincrona) non solo il <div>, ma anche le API di google.
Leggendo su internet mi sono imbattuto in questo:
Codice PHP:
function include_js(script_filename) {
var html_doc = document.getElementsByTagName('head').item(0);
var js = document.createElement('script');
js.setAttribute('type', 'text/javascript');
js.setAttribute('src', script_filename);
html_doc.appendChild(js);
js.onload = function () { return true; }
return false;
}
Ho pensato potesse fare a caso mio...ho scritto un <div id="gmap" style="width: 100%; height: 500px;" onload="initGmap('gmap','41','12')" oppure onclick="initGmap('gmap','41','12')">MAPPA</div>
Codice PHP:
function initGmaps(id, lat, lng) {
include_js('http://maps.google.com/maps?file=api&v=2&key=ABQIAAAA_MuoIOLm5mjPspoRmMd9qRRUXL0pcOuJOdLJlCGQHhRKTxT7FRTrDOuvG7PmBi1ZqHu7CEP8nOMaKg');
if (GBrowserIsCompatible()) {
function createMarker(point,html) {
var marker = new GMarker(point);
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml(html);
});
return marker;
}
// Mostra la mappa con longitudine, latitudine e zoom specificati e i controlli
var map = new GMap2(document.getElementById(id));
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng('44','-79'),8);
//while(!map.isLoaded()) Element.show('indicator');
// Inizializza tre marcatori
var point = new GLatLng(43.65654,-79.90138);
var marker = createMarker(point,'<div style="width:240px">Bla Bla</div>')
map.addOverlay(marker);
var point = new GLatLng(43.91892,-78.89231);
var marker = createMarker(point,'Bla Bla 2')
var point = new GLatLng(43.82589,-79.10040);
var marker = createMarker(point,'Bla Bla 3')
map.addOverlay(marker);
}
// Browser non compatibile con la libreria
else {
alert("Sorry, the Google Maps API is not compatible with this browser");
}
Inutile dire che non funzia, l'ho testato anche con altri file .js. Per ora uso PHP e una nuova richiesta sulla pagina, ma mi piacerebbe farlo con Ajax...
Illuminatemi sulla mia castroneria!!