2017-06-14 1 views
-1

J'ai une page PHP dans laquelle adresse de quelqu'un fecth de la table de base de données.match code postal ou l'adresse de la page php à google map

Comme:

Person name address zip  MAP 

MR. xyz  city1 1234 click 
MR. abc  city2 1234 click 
MR. dfe  city3 1244 click 
MR. rrr  city4 1284 click 

Si clique admin sur Cliquez sur le bouton de M. abc alors carte Google devrait être ouverte avec adresse ou zip de MR. abc et google lieu devrait être ouvert sur google map de MR. abc

Je n'ai aucune idée de comment faire cela? S'il vous plaît donner une suggestion.

Maintenant, je trouve un code:

<?php 
include("connection.php"); 

function geocode($address){ 

    // url encode the address 
    $address = urlencode($address); 

    // google map geocode api url 
    $url = "http://maps.google.com/maps/api/geocode/json?address={$address}"; 

    // get the json response 
    $resp_json = file_get_contents($url); 

    // decode the json 
    $resp = json_decode($resp_json, true); 

    // response status will be 'OK', if able to geocode given address 
    if($resp['status']=='OK'){ 

    // get the important data 
    $lati = $resp['results'][0]['geometry']['location']['lat']; 
    $longi = $resp['results'][0]['geometry']['location']['lng']; 
    $formatted_address = $resp['results'][0]['formatted_address']; 

    // verify if data is complete 
    if($lati && $longi && $formatted_address){ 

     // put the data in the array 
     $data_arr = array();    

     array_push(
      $data_arr, 
       $lati, 
       $longi, 
       $formatted_address 
      ); 

     return $data_arr; 

    }else{ 
     return false; 
    } 

    }else{ 
    return false; 
    } 
} 


    if($_REQUEST){ 

    // get latitude, longitude and formatted address 
    $data_arr = geocode($_REQUEST['address']); 

    // if able to geocode the address 
    if($data_arr){ 

    $latitude = $data_arr[0]; 
    $longitude = $data_arr[1]; 
    $formatted_address = $data_arr[2]; 

    ?> 

    <!-- google map will be shown here --> 
    <div id="gmap_canvas">Loading map...</div> 
    <div id='map-label'>Map shows approximate location.</div> 

    <!-- JavaScript to show google map --> 
    <script type="text/javascript" src="http://maps.google.com/maps/api/js"></script>  
    <script type="text/javascript"> 
    function init_map() { 
     var myOptions = { 
      zoom: 14, 
      center: new google.maps.LatLng(<?php echo $latitude; ?>, <?php echo $longitude; ?>), 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 
     map = new google.maps.Map(document.getElementById("gmap_canvas"), myOptions); 
     marker = new google.maps.Marker({ 
      map: map, 
      position: new google.maps.LatLng(<?php echo $latitude; ?>, <?php echo $longitude; ?>) 
     }); 
     infowindow = new google.maps.InfoWindow({ 
      content: "<?php echo $formatted_address; ?>" 
     }); 
     google.maps.event.addListener(marker, "click", function() { 
      infowindow.open(map, marker); 
     }); 
     infowindow.open(map, marker); 
    } 
    google.maps.event.addDomListener(window, 'load', init_map); 
    </script> 

    <?php 

    // if unable to geocode the address 
    }else{ 
    echo "No map found."; 
    } 
    } 

    ?> 

    But it gave an ERROR: **Map shows approximate location.** 

Est-ce bon code ou non?

+1

Tout code existant que vous pouvez partager? Vous devez utiliser l'API de géocodage de Google pour déterminer un emplacement sur une carte, avec PHP et/ou JS. – JDev518

+1

veuillez lire ce https://developers.google.com/maps/documentation/geocoding/intro –

+0

Merci de répondre. Je n'ai pas de code parce que je ne sais pas comment le démarrer? – user3526766

Répondre

1

Vous pouvez simplement ajouter l'adresse et le zip dans google map url et l'ouvrir dans un nouvel onglet. L'URL peut ressembler à ceci

http://maps.google.com/maps?q=<address>+<zip> 

http://maps.google.com/maps?q=Delhi+110021 
+0

Merci de votre réponse – user3526766

+0

Ajoutez le code postal dans l'adresse URL elle-même après l'adresse1 –