คอมพิวเตอร์และอินเตอร์เน็ต,บรรยายวิชาการ,วิจัย,ศึกษากุรอาน,E-Book

วันพุธที่ 15 สิงหาคม พ.ศ. 2561

การแสดงตำแหน่งปัจจุบัน Geo Location ด้วย PHP


การแสดงตำแหน่งปัจจุบัน Geo Location ด้วย PHP จาด google api มีขั้นตอนดังต่อไปนี้

1.สร้างไฟล์ get_user_location.php 
เพื่อรับค่า lat/long และค่าความแม่นยำ(accuracy) ดังนี้

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Geocoding Page</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
 <script>
$(document).ready(function(){
    if(navigator.geolocation){
        navigator.geolocation.getCurrentPosition(showLocation);
    }else{
        $('#location').html('Geolocation is not supported by this browser.');
    }
});

function showLocation(position){
    var latitude = position.coords.latitude;
    var longitude = position.coords.longitude; 
   var accuracy = position.coords.accuracy;  //adisak Add
    $.ajax({
        type:'POST',
        url:'detail_location.php',
        data:'latitude='+latitude+'&longitude='+longitude+'&accu='+accuracy,
        success:function(msg){
            if(msg){
               $("#location").html(msg);
            }else{
                $("#location").html('Not Available');
            }
        }
    });
}
</script>
</head>
<body>
   <p>Your Location: <span id="location"></span></p>
</body>
</html>


2.สร้างไฟล์  detail_location.php 
เพื่อแสดงค่ารายละเอียดของตำแหน่งตาม lat/long ที่รับมา ดังนี้

<?php
//if latitude and longitude are submitted
if(!empty($_POST['latitude']) && !empty($_POST['longitude'])){
//send request and receive json data by latitude and longitude
//with language option something like this - http://maps.google.com/maps/api/js?sensor=false&language=ja     //adisak add
    $url = 'http://maps.googleapis.com/maps/api/geocode/json?latlng='.trim($_POST['latitude']).','.trim($_POST['longitude']).'&sensor=false&language=th';
    $json = @file_get_contents($url);
    $data = json_decode($json);
    $status = $data->status;
    
    //if request status is successful
    if($status == "OK"){
        //get address from json data
        $location = $data->results[0]->formatted_address;
    }else{
        $location =  '';
    }
    
    //return address to ajax    ///////$_POST['accu']=ค่าที่ส่งมาพร้อม lat/long จากไฟล์ก่อนหน้านี้
    echo $location." [Lat : ".trim($_POST['latitude'])."/Long : ".trim($_POST['longitude'])."][ accuracy=".trim($_POST['accu'])."]";
}
?>

ไม่มีความคิดเห็น: