sql >> Database >  >> RDS >> Mysql

Vul land en stad automatisch in vanaf postcode, en omgekeerd

*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.



  1. TIME() Voorbeelden – MySQL

  2. ODBC gebruiken met Salesforce en OneLogin Single Sign On (SSO)

  3. Lees-/schrijflatentie bewaken

  4. PostgreSQL verwijderen met inner join