automatix1311
Mitglied
Hallo zusammen!
Vor paar Tagen habe ich von der Google Maps API Doku Seite, hier, ein Beispiel-Skript geklaut. Dann habe ich den Code auseinandergenommen und umgeschrieben, v.a. um einzelne Teil besser zu verstehen.
Die komplette Date mit HTML hänge ich an.
Problem: Es funktionert nur, wenn ein Alert geworfen wird. Sonst erscheint im FireBug eni Fehler:
Meine Vermutung ist, dass es ein AJAX-Problem ist, sprich, mit der Asynchronität der Aufrufe zusammenhängt. Kann bitte jemand bei der Lösung helfen? Danke!
Grüße,
Ilya
Vor paar Tagen habe ich von der Google Maps API Doku Seite, hier, ein Beispiel-Skript geklaut. Dann habe ich den Code auseinandergenommen und umgeschrieben, v.a. um einzelne Teil besser zu verstehen.
HTML:
var address = 'TU-Sportzentrum Dovestraße Berlin';
var geocoder = new google.maps.Geocoder();
var geoLocation = generateLatLng(address);
function createMap() {
var mapOptions = {
zoom: 15,
center: generateLatLng(address),
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById('mapCanvas'), mapOptions);
addMarker();
}
function addMarker() {
var marker = new google.maps.Marker({
map: map,
position: generateLatLng(address)
});
}
function createGoogleMapsLink() {
return 'http://maps.google.de/maps?' +
'q=' + address +
'&ll=' + generateLatLng(address).lat() + ',' + generateLatLng(address).lng();
}
function generateLatLng(address) {
geocoder.geocode({'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
geoLocation = results[0].geometry.location;
// alert(geoLocation.lat() + ' / ' + geoLocation.lng() + ' ' + status);
} else {
// alert('Geocode was not successful for the following reason: ' + status);
}
});
return geoLocation;
}
function showMap() {
var address = jQuery('#address').val();
createMap();
jQuery('#link').attr('href', createGoogleMapsLink());
}
jQuery('document').ready(function() {
alert('Mit alert geht\'s. Ohne nicht...');
jQuery('#address').val(address);
showMap();
});
jQuery('document').ready(function() {
jQuery('#address').change(function() {
address = jQuery('#address').val();
createMap();
jQuery('#link').attr('href', createGoogleMapsLink());
});
});
Die komplette Date mit HTML hänge ich an.
Problem: Es funktionert nur, wenn ein Alert geworfen wird. Sonst erscheint im FireBug eni Fehler:
generateLatLng(address) is undefined
'&ll=' + generateLatLng(address).lat() + ',' + generateLatLng(address).lng();
Meine Vermutung ist, dass es ein AJAX-Problem ist, sprich, mit der Asynchronität der Aufrufe zusammenhängt. Kann bitte jemand bei der Lösung helfen? Danke!
Grüße,
Ilya