*To bardzo proste, wystarczy pobrać kod pocztowy od użytkownika, a dzięki temu możesz uzyskać $kraj i $miasto za pomocą Google API.Tutaj podam przykład jak otrzymuję długość i szerokość geograficzną z kodu pocztowego, tj. kodu pocztowego.
$postcode=$_POST('postcode');
if($postcode)
{
$address = urlencode($postcode);
$url='http://maps.googleapis.com/maps/api/geocode/json?address='.$address.'&sensor=false';
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_URL, $url);
$data = curl_exec($ch);
curl_close($ch);
$source = $data;
$obj = json_decode($source);
$lat = $obj->results[0]->geometry->location->lat;
$long = $obj->results[0]->geometry->location->lng;
}
$longitude=$long;
$latitude=$lat;
niż możesz wstawić powyższe dwie zmienne $longitude i $latitude do swojej bazy danych. Tak proste :) .przejdź do następującego linku https://developers.google.com/ mapy/dokumentacja/geokodowanie/?csw=1
teraz, aby uzyskać nazwę kraju z długości i szerokości geograficznej, użyj reverse geocoding.supply oddzieloną przecinkami parę szerokości i długości geograficznej w parametrze latLng.
var geocoder;
var map;
var infowindow = new google.maps.InfoWindow();
var marker;
function initialize() {
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(40.730885,-73.997383);
var mapOptions = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
}
function codeLatLng() {
var input = document.getElementById("latlng").value;
var latlngStr = input.split(",",2);
var lat = parseFloat(latlngStr[0]);
var lng = parseFloat(latlngStr[1]);
var latlng = new google.maps.LatLng(lat, lng);//here you will get your country and city name
geocoder.geocode({'latLng': latlng}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[1]) {
map.setZoom(11);
marker = new google.maps.Marker({
position: latlng,
map: map
});
infowindow.setContent(results[1].formatted_address);
infowindow.open(map, marker);
}
} else {
alert("Geocoder failed due to: " + status);
}
});
}
przeczytaj o odwrotnym geokodowaniu tutaj i zmodyfikuj kod zgodnie ze swoimi potrzebami https:// developers.google.com/maps/documentation/javascript/geocoding#ReverseGeocoding
Użyj :getLocations(latlng:GLatLng, callback:function)
Ta metoda wykonuje geokodowanie odwrotne, czyli konwersję pary szerokości i długości geograficznej na adresy czytelne dla człowieka. getLocations() wysyła żądanie do usługi geokodowania Google, prosząc ją o zwrócenie adresu dla danego latlng i przekazanie odpowiedzi w podanym wywołaniu zwrotnym.
Ponieważ ta metoda wymaga wywołania serwera Google, musisz również przekazać metodę wywołania zwrotnego, aby obsłużyć odpowiedź. Ta odpowiedź będzie zawierać kod stanu, a jeśli się powiedzie, co najmniej jeden obiekt oznaczenia miejsca.
Zauważ, że ta metoda może zamiast tego przekazać adresowalny String, jak wskazano powyżej; w takim przypadku usługa wykona standardowy geokod. Jeśli jednak pierwszy argument zawiera GLatLng, usługa wykona geokod odwrotny.