2016-09-15 4 views
-1

Ich habe kein Problem, die aktuelle lat und lng mit Javascript. Aber ich möchte die API Link in PHP über file_get_contents wie folgt nennen:Holen Sie sich aktuelle Breitengrad und lng von Google Geolocation API

<?php 
$json = file_get_contents('https://www.googleapis.com/geolocation/v1/geolocate?key=Jsddds6s6sdht43asdsaASasta8962'); 
?> 

Aktuelle wenn ich die URL in Chrome einfügen, erhalte ich Nicht gefunden. Warum ist das passiert?

Antwort

1

Sein geben Fehler, weil Ihre BENUTZUNG Query-String-GET-Methode für sie

Verwendung POST-Methode zum Abrufen von Daten, weil Google Geolocation nur post-Methode enter image description here hier erlaubt ist ein Beispiel

<!DOCTYPE html> 
 
<html lang="en"> 
 
<head> 
 
    <title>Geocode Example</title> 
 
    <meta charset="utf-8"> 
 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
 
    <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
 
    
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
 
    <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
    
 
</head> 
 
<body> 
 
<span>Your Latitude : </span><span id="lat"></span><br> 
 
<span>Your Longitude : </span><span id="lng"></span><br> 
 
<button id="btn">Click Here To Get Lat And Lng</button> 
 
<script> 
 
$(document).ready(function() { 
 
    $('#btn').click(function(e) { 
 
     $.ajax({ 
 
\t \t type : 'POST', 
 
\t \t data: '', 
 
\t \t url: "https://www.googleapis.com/geolocation/v1/geolocate?key=AIzaSyCW0lvagDP67ulkwwP7yAIBHJoj2HT0apM", 
 
\t \t success: function(result){ 
 
     \t \t $('#lat').html(result['location']['lat']); 
 
\t \t \t \t $('#lng').html(result['location']['lng']); 
 
\t \t \t \t \t 
 
    \t \t }}); 
 
\t \t \t \t \t 
 
    }); 
 
}); 
 
</script> 
 

 
</body> 
 
</html>

+0

Vielen Dank für das hinweisend. Oft übersehen wir die einfachste Nachricht. –

0

Der erste Schritt besteht darin, die Antwort zu überprüfen, die Sie von der API erhalten.

function get_http_response_code($url) { 
    $headers = get_headers($url); 
    return substr($headers[0], 9, 3); 
} 
if(get_http_response_code('https://www.googleapis.com/geolocation/v1/geolocate?key=Jsddds6s6sdht43asdsaASasta8962') != "200"){ 
    echo "Error parsing api"; 
}else{ 
    file_get_contents('https://www.googleapis.com/geolocation/v1/geolocate?key=Jsddds6s6sdht43asdsaASasta8962'); 
} 

Siehe Dev Guid for Response

Oder Sie könnten versuchen, diese mit -

$str = file_get_contents('https://www.googleapis.com/geolocation/v1/geolocate?key=Jsddds6s6sdht43asdsaASasta8962'); 
$json = json_decode($str, true); 

dies sollten Sie also einen JSON-String geben und dann können Sie es durch Decodierung manipulieren.

+0

Ich weiß, dass es mir Fehler gibt, weil ich direkt die URL in die Adressleiste eingefügt habe. einer der Gründe, warum ich das tue, ist, weil ich nicht JavaScript schreiben möchte :( –

+0

Aktualisiert meine Antwort – Techidiot

Verwandte Themen