public function testOriginWithLatitudeAndLongitude()
 {
     $this->distanceMatrixRequest->addOrigin(1.1, 2.1, false);
     $origins = $this->distanceMatrixRequest->getOrigins();
     $this->assertArrayHasKey(0, $origins);
     $this->assertCount(1, $origins);
     $this->assertSame(1.1, $origins[0]->getLatitude());
     $this->assertSame(2.1, $origins[0]->getLongitude());
     $this->assertFalse($origins[0]->isNoWrap());
 }
 /**
  * Generates distance matrix URL API according to the request.
  *
  * @param \Ivory\GoogleMap\Services\DistanceMatrix\DistanceMatrixRequest $distanceMatrixRequest The distance matrix request.
  *
  * @return string The generated URL.
  */
 protected function generateUrl(DistanceMatrixRequest $distanceMatrixRequest)
 {
     $httpQuery = array('origins' => array(), 'destinations' => array());
     foreach ($distanceMatrixRequest->getOrigins() as $origin) {
         if (is_string($origin)) {
             $httpQuery['origins'][] = $origin;
         } else {
             $httpQuery['origins'][] = sprintf('%s,%s', $origin->getLatitude(), $origin->getLongitude());
         }
     }
     foreach ($distanceMatrixRequest->getDestinations() as $destination) {
         if (is_string($destination)) {
             $httpQuery['destinations'][] = $destination;
         } else {
             $httpQuery['destinations'][] = sprintf('%s,%s', $destination->getLatitude(), $destination->getLongitude());
         }
     }
     $httpQuery['origins'] = implode('|', $httpQuery['origins']);
     $httpQuery['destinations'] = implode('|', $httpQuery['destinations']);
     if ($distanceMatrixRequest->hasTravelMode()) {
         $httpQuery['mode'] = strtolower($distanceMatrixRequest->getTravelMode());
     }
     if ($distanceMatrixRequest->hasAvoidTolls() && $distanceMatrixRequest->getAvoidTolls()) {
         $httpQuery['avoidTolls'] = true;
     }
     if ($distanceMatrixRequest->hasAvoidHighways() && $distanceMatrixRequest->getAvoidHighways()) {
         $httpQuery['avoidHighways'] = true;
     }
     if ($distanceMatrixRequest->hasUnitSystem()) {
         $httpQuery['units'] = strtolower($distanceMatrixRequest->getUnitSystem());
     }
     if ($distanceMatrixRequest->hasRegion()) {
         $httpQuery['region'] = $distanceMatrixRequest->getRegion();
     }
     if ($distanceMatrixRequest->hasLanguage()) {
         $httpQuery['language'] = $distanceMatrixRequest->getLanguage();
     }
     $httpQuery['sensor'] = $distanceMatrixRequest->hasSensor() ? 'true' : 'false';
     $url = sprintf('%s/%s?%s', $this->getUrl(), $this->getFormat(), http_build_query($httpQuery));
     return $this->signUrl($url);
 }