gps.php
3.78 KB
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<?php
/**
* @package Joomla.Platform
* @subpackage Openstreetmap
*
* @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE
*/
defined('JPATH_PLATFORM') or die();
/**
* Openstreetmap API GPS class for the Joomla Platform
*
* @since 3.2.0
* @deprecated 4.0 Use the `joomla/openstreetmap` package via Composer instead
*/
class JOpenstreetmapGps extends JOpenstreetmapObject
{
/**
* Method to retrieve GPS points
*
* @param float $left Left boundary
* @param float $bottom Bottom boundary
* @param float $right Right boundary
* @param float $top Top boundary
* @param integer $page Page number
*
* @return array The XML response containing GPS points
*
* @since 3.2.0
*/
public function retrieveGps($left, $bottom, $right, $top, $page = 0)
{
// Set the API base
$base = 'trackpoints?bbox=' . $left . ',' . $bottom . ',' . $right . ',' . $top . '&page=' . $page;
// Build the request path.
$path = $this->getOption('api.url') . $base;
// Send the request.
$response = $this->oauth->oauthRequest($path, 'GET', array());
$xml_string = simplexml_load_string($response->body);
return $xml_string;
}
/**
* Method to upload GPS Traces
*
* @param string $file File name that contains trace points
* @param string $description Description on trace points
* @param string $tags Tags for trace
* @param integer $public 1 for public, 0 for private
* @param string $visibility One of the following: private, public, trackable, identifiable
* @param string $username Username
* @param string $password Password
*
* @return JHttpResponse The response
*
* @since 3.2.0
*/
public function uploadTrace($file, $description, $tags, $public, $visibility, $username, $password)
{
// Set parameters.
$parameters = array(
'file' => $file,
'description' => $description,
'tags' => $tags,
'public' => $public,
'visibility' => $visibility,
);
// Set the API base
$base = 'gpx/create';
// Build the request path.
$path = $this->getOption('api.url') . $base;
$header['Content-Type'] = 'multipart/form-data';
$header = array_merge($header, $parameters);
$header = array_merge($header, array('Authorization' => 'Basic ' . base64_encode($username . ':' . $password)));
// Send the request.
$response = $this->sendRequest($path, 'POST', $header, array());
return $response;
}
/**
* Method to download Trace details
*
* @param integer $id Trace identifier
* @param string $username Username
* @param string $password Password
*
* @return array The XML response
*
* @since 3.2.0
*/
public function downloadTraceMetadetails($id, $username, $password)
{
// Set the API base
$base = 'gpx/' . $id . '/details';
// Build the request path.
$path = $this->getOption('api.url') . $base;
// Send the request.
$xml_string = $this->sendRequest($path, 'GET', array('Authorization' => 'Basic ' . base64_encode($username . ':' . $password)));
return $xml_string;
}
/**
* Method to download Trace data
*
* @param integer $id Trace identifier
* @param string $username Username
* @param string $password Password
*
* @return array The XML response
*
* @since 3.2.0
*/
public function downloadTraceMetadata($id, $username, $password)
{
// Set the API base
$base = 'gpx/' . $id . '/data';
// Build the request path.
$path = $this->getOption('api.url') . $base;
// Send the request.
$xml_string = $this->sendRequest($path, 'GET', array('Authorization' => 'Basic ' . base64_encode($username . ':' . $password)));
return $xml_string;
}
}