*Dit is heel eenvoudig wat u hoeft te doen, u hoeft alleen maar de postcode van de gebruiker te krijgen en daarmee kunt u $country en $city krijgen met behulp van google api.hier geef ik u een voorbeeld van hoe ik lengte- en breedtegraad krijg van de postcode, d.w.z. postcode.
$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;
dan kun je de bovenstaande twee variabelen $longitude en $latitude in je database invoegen.simple as that :) .ga naar de volgende link https://developers.google.com/ kaarten/documentatie/geocoding/?csw=1
nu voor het verkrijgen van de landnaam van lengtegraad en breedtegraad, gebruikt u omgekeerde geocoding.supply een door komma's gescheiden breedtegraad/lengtegraad-paar in de latLng-parameter.
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);
}
});
}
lees hier over reverse geocodng en pas de code aan uw behoeften aan https:// developers.google.com/maps/documentation/javascript/geocoding#ReverseGeocoding
Gebruik:getLocations(latlng:GLatLng, callback:function)
Deze methode voert reverse-geocoding uit, de conversie van een breedtegraad/lengtegraad-paar in door mensen leesbare adressen. getLocations() stuurt een verzoek naar de geocoderingsservice van Google en vraagt deze om het adres voor de opgegeven latlng te retourneren en het antwoord door te geven in de gegeven callback.
Aangezien voor deze methode een aanroep naar een Google-server is vereist, moet u ook een terugbelmethode doorgeven om het antwoord af te handelen. Dit antwoord bevat een Statuscode en, indien succesvol, een of meer Placemark-objecten.
Merk op dat deze methode in plaats daarvan een adresseerbare String kan doorgeven, zoals hierboven aangegeven; in dat geval zal de service een standaard geocode uitvoeren. Als het eerste argument echter een GLatLng bevat, zal de service een omgekeerde geocode uitvoeren.