GM API udostępnia własną nakładkę na obiet HttpRequest, standardowo używany przy korzystaniu z technologii AJAX ( zakładając nie korzystanie z bibliotek pomocniczych ). Ostatnio siedzę więcej w Google Maps no i uznałem, że bez sensu jest zaprzęgać zewnętrzną bibliotekę skoro API GM udostępnia do tego własne funkcje. Oto jak wygląda prototyp funkcji:
GDownloadUrl(url, onload, postBody?, postContentType?)
Bardzo często ostatnie dwa parametry nie są używane ( są opcjonalne ). Wtedy komunikacja odbywa się za pomocą metody GET. Jak wiadomo, ma to swoje wady, bowiem są problemy z przesyłaniem dużej ilości informacji oraz z kodowaniem polskich znaków diakrytycznych. W dokumentacji można bez problemu znaleźć przykłady z wykorzystaniem GDownloadUrl i metody GET więc opiszę pokrótcę metodę POST. Najlepszym tłumaczeniem jest zwykle przykład kodu więć oto on:
function saveData()
{
var name = document.getElementById(”name”).value;
var info = document.getElementById(”info”).value;
var latlng = marker.getLatLng();
var lat = latlng.lat();
var lng = latlng.lng();var url = “file.php”;
GDownloadUrl(url, function(data, responseCode) {
if (responseCode == 200 && data.length <= 1)
{
marker.closeInfoWindow();
document.getElementById(”message”).innerHTML = “Znacznik dodany.”;
}
}, “name=” + name + “&info=” + info +
“&lat=” + lat + “&lng=” + lng, “application/x-www-form-urlencoded”);
}
Funkcja ta przetwarza formularz i przesyła dane do pliku PHP metodą POST. Na początku pobierany wartości pól z formularza i ustalamy URL pliku, do którego prześlemy dane. Jest to też pierwszy argument funkcji GDownloadUrl. Kolejnym jest funkcja zwrotna, wykonywana po zakończeniu GDownloadUrl. Trzeci argument to lista danych w postaci nazwa=wartość a ostatni to typ MIME.
I to w zasadzie tyle, prosty przykład można dostosować do swoich potrzeb i wykorzystać.
GDownloadUrl z kilkoma innymi funkcjami dobrze nadają się do pobrania i parsowania xmla. Samodzielne dojście co do czego może zająć, ja sam uczyłem się z tego źródła http://gmapsapi.com/podstawy/010_wczytywanie_danych_z_pliku_xml.html. Co do uwagi o znakach diaktrycznych – użycie javascriptowego escape() zdaje się eliminować problem polskich znaków.