For several hours I tried to get the Google Map GeoCoding Script of
Blackpool Community Church Javascript Team working with jQuery but I
failed. Loading the script from an external file is no problem. But I
canĀ“t get the  function showAddress() starting when the page is
loaded. I tried $(window).load(function(showAddress), $
(document).ready(function() - no one worked. The address is stored in
a paragraph with the id "address" which one I can manipulate. When I
put the JavaScript-Code inside the XHTML-Code an call showAdress with
<body onload="showAddress()"> everthing is working fine. But really -
I don't like JavaScript and XHTML mixed up.

So anyone has an advice for me?

Thank you

Mazso

$(document).ready(function() {


            if (GBrowserIsCompatible()) {

              var map = new GMap($("#map")[0]);
              map.addControl(new GLargeMapControl());
              map.addControl(new GMapTypeControl());
              map.setCenter(new GLatLng(20,0),2);

              // ====== Create a Client Geocoder ======
              var geo = new GClientGeocoder();

              // ====== Array for decoding the failure codes ======
              var reasons=[];
              reasons[G_GEO_SUCCESS]            = "Success";
              reasons[G_GEO_MISSING_ADDRESS]    = "Missing Address: The
address was either missing or had no value.";
              reasons[G_GEO_UNKNOWN_ADDRESS]    = "Unknown Address:  No
corresponding geographic location could be found for the specified
address.";
              reasons[G_GEO_UNAVAILABLE_ADDRESS]= "Unavailable Address:  The
geocode for the given address cannot be returned due to legal or
contractual reasons.";
              reasons[G_GEO_BAD_KEY]            = "Bad Key: The API key is
either invalid or does not match the domain for which it was given";
              reasons[G_GEO_TOO_MANY_QUERIES]   = "Too Many Queries: The
daily geocoding quota for this site has been exceeded.";
              reasons[G_GEO_SERVER_ERROR]       = "Server error: The
geocoding request could not be successfully processed.";

              // ====== Geocoding ======
              function showAddress() {
                 var search = $("#address").text();
        //        var search = document.getElementById("search").value;
                // ====== Perform the Geocoding ======
                geo.getLocations(search, function (result)
                  {
                    // If that was successful
                    if (result.Status.code == G_GEO_SUCCESS) {
                      // How many resuts were found
                      document.getElementById("message").innerHTML = "Found "
+result.Placemark.length +" results";
                      // Loop through the results, placing markers
                      for (var i=0; i<result.Placemark.length; i++) {
                        var p = result.Placemark[i].Point.coordinates;
                        var marker = new GMarker(new GLatLng(p[1],p[0]));
                        document.getElementById("message").innerHTML +=
"<br>"+(i+1)+": "+ result.Placemark[i].address + marker.getPoint();
                        map.addOverlay(marker);
                      }
                      // centre the map on the first result
                      var p = result.Placemark[0].Point.coordinates;
                      map.setCenter(new GLatLng(p[1],p[0]),14);
                    }
                    // ====== Decode the error status ======
                    else {
                      var reason="Code "+result.Status.code;
                      if (reasons[result.Status.code]) {
                        reason = reasons[result.Status.code]
                      }
                      alert('Could not find "'+search+ '" ' + reason);
                    }
                  }
                );
              }
            }

            // display a warning if the browser was not compatible
            else {
              alert("Sorry, the Google Maps API is not compatible with this
browser");
            }

});

Reply via email to