การแสดงตำแหน่งปัจจุบัน 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'])."]";
}
?>
ไม่มีความคิดเห็น:
แสดงความคิดเห็น