Ankündigung

Einklappen
Keine Ankündigung bisher.

Abfrage API bigdatacloud

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Abfrage API bigdatacloud

    Hallo

    Im Gegensatz zu andern API wie:
    PHP-Code:
    $xml file_get_contents('https://nominatim.openstreetmap.org/reverse?format=json&lat='.$lat.'&lon='.$lon.'&limit=1&accept-language=en',false,$context);
    var_dump($xml); 
    bekomme ich bei bigdatacloud:
    PHP-Code:
    $xml file_get_contents('https://api.bigdatacloud.net/data/reverse-geocode-client?&latitude=45.4&longitude=8.1&localityLanguage=de'); 
    immer bool(false) - auch bei Tests mit dem api-key und/oder dem $context.
    Wenn ich die Zeile im Browser eingebe wird das Resultat wie gewünscht angezeigt.

    Biete 20 Euro per paypal für die Lösung (wenn überhaupt möglich).

    Grüsse aus dem Süden
    Nebbiolo

  • #2
    Der Aufbau der URL ist wie folgt:
    Thttps://api.bigdatacloud.net/data/reverse-geocode-with-timezone?latitude=45.4&longitude=8.1&localityLangu age=de&key=[your api key]
    [your-api-key] musst du mit deinem API Key austauschen.

    Darüber hinaus scheint das API JSON und nicht XML zurück zu geben.

    API Beschreibung: Reverse Geocoding with Time Zone | BigDataCloud

    Kommentar


    • #3
      Danke Zeichen32 - aber das hilft mir nicht weiter. Habe ja geschrieben dass ich es auch mit dem Key versucht habe ... und die Dokumentation habe ich auch gelesen.
      Betreffend Format hätte ich vielleicht besser $data= geschrieben ... aber ich erhalte ja gar keine Daten. Ich vermute es hat etwas mit dem user-agent zu tun ...
      Gibt es wirklich niemand der so eine Abfrage in php auf seinem Web-Server testen kann?

      Hier noch der $http_response_header
      { [0]=> string(22) "HTTP/1.1 403 Forbidden" [1]=> string(35) "Date: Sat, 22 Jan 2022 07:39:43 GMT" [2]=> string(30) "Content-Type: application/json" [3]=> string(17) "Connection: close" [4]=> string(30) "Access-Control-Allow-Origin: *" [5]=> string(24) "X-Response-Time-ms: 0.06" }

      Kommentar


      • #4
        Scheinbar verwendest du die API nicht so wie vorgesehen: https://support.bigdatacloud.com/sup...es/51000126204

        Kommentar


        • #5
          Ich versehe nicht sehr gut Englisch, aber so wie ich das verstanden habe (natürlich auch schon mehrfach gelesen) gilt das vor allem für die IP-Suche. Ich werde ja auch nicht gesperrt ...
          Es wird ja speziell auf reverse geocoding hingewiesen, das braucht keinen Key und es sind viele kontenlose Abfragen erlaubt.

          What to do if you violate the criteria and your IP is banned?
          If your use application doesn’t match the criteria then you can use our server-side reverse geocoding API. It provides the same output as the client-side reverse geocoding API and comes with 50K free monthly queries. You can increase the API queries for $2 per additional 50K queries.

          Kommentar


          • #6
            Zitat von nebbiolo Beitrag anzeigen
            Gibt es wirklich niemand der so eine Abfrage in php auf seinem Web-Server testen kann?
            Habs nur schnell lokal bei mir versucht:
            PHP-Code:
            $xml file_get_contents('https://api.bigdatacloud.net/data/reverse-geocode-client?&latitude=45.4&longitude=8.1&localityLanguage=de'); 
            var_dump($xml); 
            Liefert die gewünschte Anzeige....



            PHP-Code:
              string '{   "latitude": 45.4,    "longitude": 8.1,    "continent": "Europa",    "lookupSource": "coordinates",    "continentCode": "EU",    "localityLanguageRequested": "de",    "city": "",    "countryName": "Italien",   "postcode": "",   "countryCode": "IT",   "principalSubdivision": "Piemont",   "principalSubdivisionCode": "IT-21",   "plusCode": "8FQCC422+22",   "locality": "Cavaglià",   "localityInfo": {     "administrative": [       {         "name": "Italien",         "description": "Staat in Südeuropa",         "i'... (length=2080
            (Einfügen mit Zeilenumbrüchen funktioniert nicht, auch wenn ich das vorher in einen Text Editor kopiere... Ist ja hier egal, aber das nervt schon...)


            Ich denke, deine IP/ IP Block ist gesperrt...

            Kommentar


            • #7
              Das ist sehr nett Soulrider dass du dir die Mühe genommen hast.
              Wäre dann nicht auch die Abfrage über die url (also https im Browser aufrufen) gesperrt?
              Oder könnte es sein, das die Abfrage nur "lokal" geht (habe ich nicht versucht) also nicht vom WebServer aus ... da habe ich schon was gelesen (nur Client-Abfrage erlaubt?).

              Kommentar


              • #8
                Ich nehme an, dein Webserver steht nicht bei dir zu Hause und hat eine andere IP Adresse als du... (Browser oder wamp oder was auch immer spielt keine Rolle...)

                Da steht auch, dass das so nur "Client Side" ohne Api Key geht und dass es "Server Side" immer einen Api Key braucht...

                Kommentar


                • #9
                  OK, nun ist "alles" klar, das php-Script funktioniert nur von einem Client aus - also nicht vom WebServer.
                  Danke allen für Eure Unterstützung!
                  Schönes Wochenende und viele Grüsse, Nebbiolo

                  Kommentar


                  • #10
                    https://github.com/bigdatacloudapi/j...geocode-client Solche Api Anbieter haben immer irgendwo Beispiele versteckt.

                    Das funktionierte auf Anhieb bei mir:

                    Code:
                    <script src="https://cdn.jsdelivr.net/gh/bigdatacloudapi/js-reverse-geocode-client@latest/bigdatacloud_reverse_geocode.min.js" type="text/javascript"></script>
                    <script type="text/javascript">
                    
                        /* Initialise Reverse Geocode API Client */
                    var reverseGeocoder=new BDCReverseGeocode();
                    reverseGeocoder.localityLanguage='de';
                    reverseGeocoder.getClientCoordinates(function(result) {
                            console.log(result);
                            let längengrad = result.coords.latitude;
                            let breitengrad = result.coords.longitude;
                            alert(längengrad);
                            alert(breitengrad);
                    
                                reverseGeocoder.getClientLocation({
                            /* Wenn Längen und Breitengrad bereits vorhanden einfach hier eintragen und Längen/Breitengrad abfrage löschen */
                                    latitude: längengrad,
                                    longitude: breitengrad,
                                },function(result) {
                                    console.log(result);
                            /* Stadt und PLZ von den Koordinaten */
                                    alert(result.city);
                                    alert(result.postcode);
                        });
                    });   
                    
                    
                    </script>

                    Kommentar

                    Lädt...
                    X