-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathshort.php
114 lines (112 loc) · 4.88 KB
/
short.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<?php require_once "dbconnect.php"; ?>
<?php
function arrayreturns($lat, $long, $client, $connect)
{
$result = array();
for ($i=0; $i < count($client) ; $i++) { # code...
$id = $client[$i];
$query = $connect->query("SELECT lat, longti FROM client WHERE id='$id'");
$row = $query->fetch_assoc();
$clientlat = ($lat - $row['lat']) * ($lat - $row['lat']);
$clientlong = ($long - $row['longti']) * ($long - $row['longti']);
$clientdistance = $clientlong + $clientlat;
$result[$id] = $clientdistance;
//echo $id . " distance from savar: " . $clientdistance . "<br>";
}
asort($result);
return $result;
}
$start_lat = 23.844766;
$start_long = 90.253290;
$client = array(1,3,4,7,8);
$result = arrayreturns($start_lat, $start_long, $client, $connect);
$addressarray = array();
foreach ($result as $key => $value) {
$sql = $connect->query("SELECT address FROM client WHERE id='$key'");
$row = $sql->fetch_assoc();
$addressarray["client". $key] = $row['address'];
}
$jsonsave = json_encode($addressarray, JSON_PRETTY_PRINT);
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js"></script>
</head>
<body>
<select class="" name="">
<option value="">Choose</option>
<?php foreach ($result as $key => $value) { ?>
<option value="<?php echo $key; ?>"><?php echo $addressarray["client".$key]; ?></option>
<?php } ?>
</select>
<br>
Start point: <div id="start">N5, Savar Union 1340</div>
End point: <div id="end"><?php echo end($addressarray); ?></div>
<div id="googleMap" style="width:70%;height:500px; margin:1em 0em 1em 0em; padding-left:15%; text-align:center"></div>
<div id="map">
</div>
<div id="directions-panel"></div>
<script>
var start = document.getElementById("start").innerHTML;
var end = document.getElementById("end").innerHTML;
var jsondata = <?php echo json_encode($addressarray) ?>;
var address = [];
$.each(jsondata, function(key, value) {
address.push(value);
});
//console.log(address);
function initMap() {
var myCenter = new google.maps.LatLng(23.844766,90.253290);
var directionsService = new google.maps.DirectionsService;
var directionsDisplay = new google.maps.DirectionsRenderer;
var map = new google.maps.Map(document.getElementById('googleMap'), {
zoom: 6,
center: myCenter
});
directionsDisplay.setMap(map);
calculateAndDisplayRoute(directionsService, directionsDisplay);
}
function calculateAndDisplayRoute(directionsService, directionsDisplay) {
var waypts = [];
for (var i = 0; i < address.length-1; i++) {
waypts.push({
location: address[i],
stopover: true
});
}
//console.log(waypts);
directionsService.route({
origin: start,
destination: end,
waypoints: waypts,
optimizeWaypoints: true,
travelMode: 'DRIVING'
}, function(response, status) {
if (status === 'OK') {
directionsDisplay.setDirections(response);
var route = response.routes[0];
console.log(route);
var summaryPanel = document.getElementById('directions-panel');
summaryPanel.innerHTML = '';
// For each route, display summary information.
for (var i = 0; i < route.legs.length; i++) {
var routeSegment = i + 1;
summaryPanel.innerHTML += '<b>Route Segment: ' + routeSegment +
'</b><br> Estimated Time: ' + route.legs[i].duration.text+'<br>';
summaryPanel.innerHTML += route.legs[i].start_address + ' to ';
summaryPanel.innerHTML += route.legs[i].end_address + '<br>';
summaryPanel.innerHTML += route.legs[i].distance.text + '<br><br>';
}
} else {
window.alert('Directions request failed due to ' + status);
}
});
}
</script>
<script async defer src="https://maps.googleapis.com/maps/api/js?key=Key&callback=initMap"></script>
</body>
</html>