Passed
Push — master ( 82aaad...ac7049 )
by Roberto
04:19
created

Geocoding::createRequest()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 1
dl 0
loc 3
c 0
b 0
f 0
rs 10
cc 1
nc 1
nop 1
1
<?php
2
/**
3
 * Copyright (c) 2018 - present
4
 * Google Maps PHP - Geocoding.php
5
 * author: Roberto Belotti - [email protected]
6
 * web : robertobelotti.com, github.com/biscolab
7
 * Initial version created on: 5/9/2018
8
 * MIT license: https://github.com/biscolab/google-maps-php/blob/master/LICENSE
9
 */
10
11
namespace Biscolab\GoogleMaps\Api;
12
13
use Biscolab\GoogleMaps\Abstracts\Api;
14
use Biscolab\GoogleMaps\Fields\GoogleMapsRequestFields;
15
use Biscolab\GoogleMaps\Http\GoogleMapsRequest;
16
use Biscolab\GoogleMaps\Http\GoogleMapsResultsCollection;
17
use Biscolab\GoogleMaps\Http\Result\GeocodingResultsCollection;
18
use Biscolab\GoogleMaps\Object\LatLng;
19
20
/**
21
 * Class Geocoding
22
 * @package Biscolab\GoogleMaps\Api
23
 *
24
 * @see     https://developers.google.com/maps/documentation/geocoding/start
25
 */
26
class Geocoding extends Api {
27
28
	/**
29
	 * @var string
30
	 */
31
	const SERVICE_ENDPOINT = 'geocode';
32
33
	/**
34
	 * @var string
35
	 */
36
	protected $result_collection = GeocodingResultsCollection::class;
37
38
	/**
39
	 * @param string $literal_address
40
	 *
41
	 * @return GoogleMapsResultsCollection
42
	 */
43
	public function getByAddress(string $literal_address): GoogleMapsResultsCollection {
44
45
		$request = new GoogleMapsRequest([
46
			GoogleMapsRequestFields::ADDRESS => $literal_address
47
		]);
48
49
		return $this->getResultsCollections($request);
50
	}
51
52
	/**
53
	 * @param LatLng $latlng
54
	 *
55
	 * @return GoogleMapsResultsCollection
56
	 */
57
	public function getReverse(LatLng $latlng): GoogleMapsResultsCollection {
58
59
		$request = $this->createRequest([
60
			GoogleMapsRequestFields::LATLNG => $latlng
61
		]);
62
63
		return $this->getResultsCollections($request);
64
	}
65
66
	/**
67
	 * @param string $place_id
68
	 *
69
	 * @return GoogleMapsResultsCollection
70
	 */
71
	public function getByPlaceId(string $place_id): GoogleMapsResultsCollection {
72
73
		$request = $this->createRequest([
74
			GoogleMapsRequestFields::PLACE_ID => $place_id
75
		]);
76
77
		return $this->getResultsCollections($request);
78
	}
79
80
}