Géolocalisation + Google Map

Scipt complet

1ere partie: Unserialize les information provenant de l'API.
<?php
    function get_ip() {
    	// IP si Internet partagé
    	if (isset($_SERVER['HTTP_CLIENT_IP'])) {
    		return $_SERVER['HTTP_CLIENT_IP'];
    	}
    	// IP derrière un proxy
    	elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    		return $_SERVER['HTTP_X_FORWARDED_FOR'];
    	}
    	// Sinon: IP normale
    	else {
    		return (isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '');
    	}
    }                                                    
$real = get_ip();
$url = "http://ip-api.com/json/$real";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$json = curl_exec($ch);
curl_close($ch);

$tracking = json_decode($json);
                                       
$realIP = $real;
$realPays = $tracking->country;
$realCode = $tracking->countryCode;
$realRegion = $tracking->regionName;
$realVille = $tracking->city;
$realCp = $tracking->zip;                         
$realLat = $tracking->lat;              
$realLong = $tracking->lon;
$realisp = $tracking->isp;
$realorg = $tracking->org;
$realas = $tracking->as;                        
?>

<b>Affichage Infos:</b><br /> <br />
Adresse IP: <?php echo $realIP ?>
<br />
Pays: <?php echo $realPays ?>
<br />
Code Pays: <?php echo $realCode ?>
<br />
Région: <?php echo $realRegion ?>
<br />
Ville: <?php echo $realVille ?>
<br />
Code Postal: <?php echo $realCp ?>
<br />
Latitude: <?php echo $realLat ?>
<br />
ISP Nom <?php echo $realisp ?>
<br />
AS number: <?php echo $realas ?>
<br /> <br />

2ere partie: Maintenant, pour aller plus loin, nous affichons Google Map.

<style>
#map {height: 400px; width: 100%;}#map-1-3 {height: 200px;width: 100%;}
/* Le script ne fonctionnera pas sans le css -----  Ici nous allons utiliser l' id map */    
</style> 

<?php
$apiKey = "AIzxxxxxxxxxxxxx";
// Votre clé API Google
?>

    <div id="map"></div>
    <script>
      function initMap() {
        var <?php echo $realVille; ?> = {lat: <?php echo $realLat; ?>, lng: <?php echo $realLong; ?>};
        var map = new google.maps.Map(document.getElementById('map'), {
          scaleControl: true,
          center: <?php echo $realVille; ?>,
          zoom: 13
        });
        var infowindow = new google.maps.InfoWindow;
        infowindow.setContent('<b><?php echo $realVille; ?></b>');
        var marker = new google.maps.Marker({map: map, position: <?php echo $realVille; ?>});
        marker.addListener('click', function() {
          infowindow.open(map, marker);
        });
      }
    </script>
    
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=<?php echo $apiKey; ?>&language=fr®ion=<?php echo $realCode; ?>&callback=initMap">
</script>

Et voilà ... Pour aller enconre plus loin, rien n'empêche d'enregistrer en base de donnée
les informations récupérées comme $realIP, $realPays etc ...