sql >> Databasteknik >  >> RDS >> Mysql

Fyll i land och stad automatiskt från postnummer och tvärtom

*Detta är väldigt enkelt vad du behöver göra är att bara få postnumret från användaren och med det kan du få $country och $city med hjälp av google api.här ger jag dig ett exempel av hur jag får longitud och latitud från postnumret, dvs postnummer.

$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;

än du kan infoga ovanstående två variabler $longitude och $latitude i din databas.simple as that :) .gå till följande länk https://developers.google.com/ maps/documentation/geocoding/?csw=1

Använd nu omvänd geokodning för att få landsnamnet från longitud och latitud. ange ett kommaseparerat latitud/longitud-par i latLng-parametern.

 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);
      }
    });
  }

läs om omvänd geokodng här och ändra koden efter dina behov https:// developers.google.com/maps/documentation/javascript/geocoding#ReverseGeocoding

Använd:getLocations(latlng:GLatLng, callback:function)

Denna metod utför omvänd geokodning, omvandlingen av ett latitud/longitudpar till adresser som kan läsas av människor. getLocations() skickar en begäran till Googles geokodningstjänst och ber den att returnera adressen för den givna latlng och skicka svaret i den givna återuppringningen.

Eftersom den här metoden kräver ett anrop till en Google-server måste du också skicka en återuppringningsmetod för att hantera svaret. Detta svar kommer att innehålla en statuskod, och om det lyckas, ett eller flera platsmärkesobjekt.

Observera att den här metoden istället kan skicka en adresserbar sträng, som indikeras ovan; i så fall kommer tjänsten att göra en standard geokod. Om däremot det första argumentet innehåller en GLatLng, kommer tjänsten att göra en omvänd geokod.



  1. MySQL find_in_set med flera söksträngar

  2. ADODFCMP Utility

  3. operation inte tillåten när objektet är stängt när mer avancerad fråga körs

  4. Kompilerar tillägget pg_repack i binärt format för PostgreSQL-installationen