sql >> Database teknologi >  >> RDS >> Mysql

Autofyld land og by fra postnummer og det modsatte

*Dette er meget nemt, hvad du skal gøre er bare at få postnummeret fra brugeren, og med det kan du få $country og $city ved hjælp af google api.her giver jeg dig et eksempel af, hvordan jeg får længde- og breddegrad fra postnummeret, 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;

end du kan indsætte ovenstående to variabler $længdegrad og $breddegrad i din database.simpelt som det :) .gå til følgende link https://developers.google.com/ maps/documentation/geocoding/?csw=1

nu for at få landenavnet fra længde- og breddegrad, brug omvendt geokodning. Angiv et kommasepareret latitude/længde-par i latLng-parameteren.

 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 omvendt geocodng her og modificer koden efter dine behov https:// developers.google.com/maps/documentation/javascript/geocoding#ReverseGeocoding

Brug:getLocations(latlng:GLatLng, tilbagekald:funktion)

Denne metode udfører omvendt geokodning, konvertering af et bredde/længde-par til adresser, der kan læses af mennesker. getLocations() sender en anmodning til Googles geokodningstjeneste og beder den om at returnere adressen for den givne latlng og videregive svaret i det givne tilbagekald.

Da denne metode kræver et opkald til en Google-server, skal du også videregive en tilbagekaldsmetode for at håndtere svaret. Dette svar vil indeholde en statuskode, og hvis det lykkes, et eller flere stedmarkeringsobjekter.

Bemærk, at denne metode i stedet kan sende en adresserbar streng, som angivet ovenfor; i så fald vil tjenesten lave en standard geokode. Hvis det første argument imidlertid indeholder en GLatLng, vil tjenesten lave en omvendt geokode.



  1. Sådan vælger du værdier fra JSON i mysql

  2. SQL Server Konverter heltal til binær streng

  3. Opdeling af mysql-værdi i ukendt antal dele

  4. Hvordan kan jeg søge (uafhængig af store og små bogstaver) i en kolonne ved hjælp af LIKE jokertegn?