在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
<?php trait Geocodable{ /** @var string */ protected $address; /** @var \Geocoder\Geocoder */ protected $geocoder; /** @var \Geocoder\Result\Geocoded */ protected $geocoderResult; public function setGeocoder(\GeoCoder\GeocoderInterface $gocoder) { $this->geocoder = $gocoder; } public function setAddress($address) { $this->address = $address; } public function getLatitude() { if (isset($this->geocoderResult) == false){ $this->geocodeAddress(); } return $this->geocoderResult->getLatitude(); } public function getLongitude() { if (isset($this->geocoderResult) === false){ $this->geocodeAddress(); } return $this->geocoderResult->getLongitude(); } protected function geocodeAddress() { $this->geocoderResult = $this->geocoder->geocode($this->address); return true; } } //使用性状 class RetailStore { use Geocodable; //这里是类的实现 } $geocoderAdapter = new \Geocoder\HttpAdapter\CurlHttpAdapter(); $geocoderProvider = new \Geocoder\Provider\GoogleMapsProvider($geocoderAdapter); $geocoder = new \Geocoder\Geocoder($geocoderProvider); $store = new RetailStore(); $store->setAddress('420 9th Avenue, New York, NY 10001 USA'); $store->setGeocoder($gocoder); $latitude = $store->getLatitude(); $longitude = $store->getLongitude(); echo $latitude, ':', $longitude;
|
2022-08-30
2022-08-17
2022-11-06
2022-08-18
2022-07-29
请发表评论