1 | <?php
|
---|
2 |
|
---|
3 | class MapGoogle extends Map
|
---|
4 | {
|
---|
5 | function Route()
|
---|
6 | {
|
---|
7 | $Origins = array();
|
---|
8 | $Destinations = array();
|
---|
9 | foreach ($this->Path as $Index => $PathItem)
|
---|
10 | if ($Index > 0)
|
---|
11 | {
|
---|
12 | if ($Index == 1) $Origins[] = $this->Path[$Index - 1];
|
---|
13 | $Destinations[] = $this->Path[$Index];
|
---|
14 | }
|
---|
15 | $URL = 'https://maps.googleapis.com/maps/api/distancematrix/json'.
|
---|
16 | '?origins='.implode('|', $Origins).'&destinations='.implode('|', $Destinations).'&key='.$this->Key;
|
---|
17 | $Result = file_get_contents($URL);
|
---|
18 | $Points = array(array('Destination' => $this->Path[0], 'Distance' => 0, 'Duration' => 0));
|
---|
19 | $I = 1;
|
---|
20 | while (strpos($Result, '"distance"') !== false) {
|
---|
21 | $Distance = trim($this->Parse($Result, '"value" :', '}'));
|
---|
22 | $Duration = trim($this->Parse($Result, '"value" :', '}'));
|
---|
23 | $Points[] = array('Destination' => $this->Path[$I], 'Distance' => $Distance, 'Duration' => $Duration);
|
---|
24 | $I++;
|
---|
25 | }
|
---|
26 | return $Points;
|
---|
27 | }
|
---|
28 |
|
---|
29 | function Show()
|
---|
30 | {
|
---|
31 | $WayPoints = $this->Path;
|
---|
32 | array_shift($WayPoints);
|
---|
33 | array_pop($WayPoints);
|
---|
34 | if (count($WayPoints) > 0)
|
---|
35 | $WaypointsQuery = '&waypoints='.implode('|', $WayPoints);
|
---|
36 | else $WaypointsQuery = '';
|
---|
37 |
|
---|
38 | $Output = '<iframe width="'.$this->Width.'" height="'.$this->Height.'" frameborder="0" scrolling="no" '.
|
---|
39 | 'marginheight="0" marginwidth="0" src="'.'https://www.google.com/maps/embed/v1/directions'.
|
---|
40 | '?key='.$this->Key.'&origin='.$this->Path[0].$WaypointsQuery.
|
---|
41 | '&destination='.$this->Path[count($this->Path) - 1].''.
|
---|
42 | '" style="border: 1px solid black"></iframe>';
|
---|
43 | return $Output;
|
---|
44 | }
|
---|
45 | }
|
---|