J'ai un formulaire sur mon site Web où un utilisateur entre une adresse d'un lieu. Quand ils soumettent le formulaire, je convertis cet emplacement en latitude/longitude et le stocke dans une base de données MySQL. J'utilise le service Geocode de Google pour cette conversion. Le problème est que je ne peux trouver ni une classe ni un service pour convertir cette latitude/longitude en une adresse et pour autant que je sache, le service de géocodage de Google est une conversion unidirectionnelle. Je me rends compte que je pourrais stocker l'adresse physique dans la base de données, mais au fil du temps c'est un espace gaspillé quand il pourrait être stocké dans un format plus simple. Quelqu'un sait-il soit une classe/service pour convertir de la latitude/longitude à une adresse ou si je me trompe et que je peux utiliser le système de géocodage de Google? J'ai cherché la réponse ces derniers jours mais je n'ai rien trouvé. Merci de votre aide!PHP Latitude Longitude à Adresse
Répondre
Vous recherchez Google (ou quelqu'un d'autre) reverse geocoding service.
<?php
/*
* Given longitude and latitude in North America, return the address using The Google Geocoding API V3
*
*/
function Get_Address_From_Google_Maps($lat, $lon) {
$url = "http://maps.googleapis.com/maps/api/geocode/json?latlng=$lat,$lon&sensor=false";
// Make the HTTP request
$data = @file_get_contents($url);
// Parse the json response
$jsondata = json_decode($data,true);
// If the json data is invalid, return empty array
if (!check_status($jsondata)) return array();
$address = array(
'country' => google_getCountry($jsondata),
'province' => google_getProvince($jsondata),
'city' => google_getCity($jsondata),
'street' => google_getStreet($jsondata),
'postal_code' => google_getPostalCode($jsondata),
'country_code' => google_getCountryCode($jsondata),
'formatted_address' => google_getAddress($jsondata),
);
return $address;
}
/*
* Check if the json data from Google Geo is valid
*/
function check_status($jsondata) {
if ($jsondata["status"] == "OK") return true;
return false;
}
/*
* Given Google Geocode json, return the value in the specified element of the array
*/
function google_getCountry($jsondata) {
return Find_Long_Name_Given_Type("country", $jsondata["results"][0]["address_components"]);
}
function google_getProvince($jsondata) {
return Find_Long_Name_Given_Type("administrative_area_level_1", $jsondata["results"][0]["address_components"], true);
}
function google_getCity($jsondata) {
return Find_Long_Name_Given_Type("locality", $jsondata["results"][0]["address_components"]);
}
function google_getStreet($jsondata) {
return Find_Long_Name_Given_Type("street_number", $jsondata["results"][0]["address_components"]) . ' ' . Find_Long_Name_Given_Type("route", $jsondata["results"][0]["address_components"]);
}
function google_getPostalCode($jsondata) {
return Find_Long_Name_Given_Type("postal_code", $jsondata["results"][0]["address_components"]);
}
function google_getCountryCode($jsondata) {
return Find_Long_Name_Given_Type("country", $jsondata["results"][0]["address_components"], true);
}
function google_getAddress($jsondata) {
return $jsondata["results"][0]["formatted_address"];
}
/*
* Searching in Google Geo json, return the long name given the type.
* (If short_name is true, return short name)
*/
function Find_Long_Name_Given_Type($type, $array, $short_name = false) {
foreach($array as $value) {
if (in_array($type, $value["types"])) {
if ($short_name)
return $value["short_name"];
return $value["long_name"];
}
}
}
/*
* Print an array
*/
function d($a) {
echo "<pre>";
print_r($a);
echo "</pre>";
}
Ne hésitez pas à regarder my blog pour un exemple de code de la façon dont utilisant le code ci-dessus et le résultat de l'échantillon.
J'utilise le code ci-dessus en PHP et généralement cela fonctionne très bien - cependant parfois Get_Address_From_Google_Maps ($ lat, $ lon) renvoie null pour $ address. Avez-vous déjà vu ce problème et des suggestions? C'est très intermittent mais cela arrive. Le lat, lon est valide et précédemment retourné une adresse valide mais sur un deuxième appel, ou un troisième appel, ou un nième appel pour le même lat, lon retournera une adresse nulle? Des pensées sur pourquoi? –
La conversion de coordonnées géographiques en adresse est connue sous le nom de géocodage inverse. Dans ce script, nous utilisons l'API Google Map car c'est gratuit, rapide et aucune clé API requise. Limite de taux de réversion Google Le géocodage est de 2500 appels API par IP par jour.
fonction PHP pour Reveres géocodage
<?
function getaddress($lat,$lng)
{
$url = 'http://maps.googleapis.com/maps/api/geocode/json?latlng='.trim($lat).','.trim($lng).'&sensor=false';
$json = @file_get_contents($url);
$data=json_decode($json);
$status = $data->status;
if($status=="OK")
{
return $data->results[0]->formatted_address;
}
else
{
return false;
}
}
?>
latitude et la longitude du col en fonction getAddress(). Il retournera la chaîne d'adresse en cas de succès sinon retourner booléen faux.
Exemple
<?php
$lat= 26.754347; //latitude
$lng= 81.001640; //longitude
$address= getaddress($lat,$lng);
if($address)
{
echo $address;
}
else
{
echo "Not found";
}
?>
- 1. latitude, longitude et adresse retrouvez
- 2. php exif; Latitude et longitude?
- 3. Comment obtenir la longitude et la latitude d'une adresse?
- 4. Comment trouver Latitude et Longitude de Adresse dans l'iPhone
- 5. Comment convertir Adresse Latitude et Longitude dans l'iPhone Developement
- 6. Comment obtenir `latitude` et` longitude` pour une adresse? Google Maps
- 7. Latitude/Longitude distance question
- 8. Latitude, Longitude Grabber
- 9. Latitude et Longitude rayon
- 10. Yelp API latitude longitude
- 11. latitude longitude de craigslist
- 12. Google maps latitude-longitude
- 13. Latitude/Longitude et mètres
- 14. Latitude et longitude
- 15. Basic API qui renvoie la longitude et la latitude d'une adresse en utilisant JavaScript ou PHP
- 16. Extraire les coordonnées latitude/longitude à partir d'une chaîne php
- 17. Chaîne à CLLocalisation latitude et longitude
- 18. Affichage à partir de la latitude/longitude
- 19. X/Y pixels à Longitude et Latitude
- 20. Latitude et longitude de MKMapItem à Swift?
- 21. calculer la latitude/longitude Point
- 22. KDTree pour la longitude/latitude
- 23. latitude et la longitude Biased
- 24. Latitude et Longitude jusqu'à l'Adresse
- 25. Google Map longitude et latitude
- 26. SQL 2003 Distance Latitude Longitude
- 27. userLocation: latitude/longitude renvoie zéro?
- 28. Convertir l'adresse à la longitude et la latitude
- 29. latitude et la longitude récupérer de google latitude
- 30. Comment trouver la longitude de latitude à partir de cette adresse?
Ok génial, cela fonctionne parfaitement. J'ai essayé de trouver ceci pour les derniers jours, merci! –
Tenez-vous au fait des règles d'utilisation de Google (Remarque: l'API de géocodage ne peut être utilisée qu'avec une carte Google, le géocodage des résultats sans les afficher sur une carte est interdit.) Https://developers.google.com/maps/documentation/ geocoding/ – puddleglum