GoogleMap Script funkioniert nicht


tklustig

Erfahrenes Mitglied
#1
Hallo Leute, folgender Code soll nach Eingabe einer Stadt die entsprechende Googlemap-Karte laden. Allerdings funktioniert das Parsen der XML-Datei nicht, wie gewollt. $('#lng').val(loc.find('lng').text()); liefert beispielsweise [object] [object]. Ich kann mich dunkel daran erinnern, dass der Code vor längerer Zeit noch funktionierte. Hat Jquery die xml-Methoden verändert? Wie muss der Code korrigiert werden??
Javascript:
<!Doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title> JQUERY und Google </title>
        <script src="http://code.jquery.com/jquery-latest.js"></script>
        <style></style>
    </head>
    <body>
    <div id="uhr"></div>
    <center><h3>Searching for places</center></h3>
    <p> Dieses AJAX-Script findet eingegegebene Plätze ihrer Wahl und zeigt diese auf einer Karte an</p>
        <input id="ort" placeholder="Hier den Ort eingeben" value="Stuttgart"  type="text"><br><br>
        <input id="send" type="submit"><br><br>

        <div id="ergebnis">
            <input id="lat" readonly='true'>
            <input id="lng" readonly='true'>
            <a id="map" href='https://www.youtube.com/watch?v=SvnBbmfUCMQ'>Map</a>
        </div>
        <?php
        ?>
        <script>
        function ticken(){
        var stunden, minuten, sekunden;
        var StundenZahl, MinutenZahl, SekundenZahl;
        var heute;
        heute = new Date();
        StundenZahl = heute.getHours();
        MinutenZahl = heute.getMinutes();
        SekundenZahl = heute.getSeconds();
        stunden = StundenZahl+":";
        if (MinutenZahl < 10)
            minuten = "0" + MinutenZahl + ":";
        else
            minuten = MinutenZahl + ":";
        if (SekundenZahl < 10)
            sekunden = "0" + SekundenZahl + " ";
        else
            sekunden = SekundenZahl + " ";
        zeit = stunden + minuten + sekunden + " Uhr";
        uhr.innerHTML = zeit;
        window.setTimeout("ticken();", 1000);
        }//End of ticken
        window.onload = ticken;
            $(document).ready(function () {
                var url = 'http://maps.googleapis.com/maps/api/geocode/xml?address=';
                var suf = '&sensor=true_or_false';

                $.ajaxSetup({
                    type: "GET", //es hat sich zur Regel gemacht, die Methoden GET und POST groß zu schreiben
                    dataType: "xml", // festlegen auf XML, automatisch parsen lassen
                    // Daten -> responseXML
                    //converters nicht ändern, default ist i.O.
                    contentType: "text/xml"
                            //garantiert das Parsen nach Erhalt
                });

                $('#send').click(function () {
                    //erst testen, ob gültige Eingabe
                    var ort = $('#ort');
                    if (ort.val().length == 0) {
                        $('#lat').val('');
                        $('#lng').val('');
                        alert("Bitte einen gültigen Ort eingeben");
                        return;
                    }
                    $.ajax({
                        //type: "GET",
                        url: url + ort.val() + suf,
                        //dataType: "xml",
                        success: function (xml) {    
                            //ab hier happerts
                            var loc = $(xml).find('location');                     
                            $('#lng').val(loc.find('lng').text());
                            $('#lat').val(loc.find('lat').text());
                            // hier ist wieder alles okay. Allerdings wurden obige ID-Felder nicht gefüllt
                            $('#map').attr('href', 'https://www.google.de/maps/@'
                                    + $('#lat').val()
                                    + ','
                                    + $('#lng').val()
                                    + ',12z');
                        }
                    });//ajax                 
                }); // onclick
            }); //ready                     
        </script>
    </body>
</html>
 

basti1012

Erfahrenes Mitglied
#2
Ich kenne mich jetzt nicht so mit den googel apis aus.
Aber als antwort kommtja das
Code:
<?xml version="1.0" encoding="UTF-8"?>
<GeocodeResponse>
 <status>OVER_QUERY_LIMIT</status>
 <error_message>Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account</error_message>
</GeocodeResponse>

Das erklärt sich ja dann eigentlich schon von alleine.

Einige Browser mögen es auch lieber wenn man die https Links nimmt und nicht http. Zumindest hat mein Browser da auch gemeckert
 

Neue Beiträge