/**
  * More efficient version of Contains() that accepts a S2LatLng rather than an
  * S2Point.
  */
 public function contains($ll)
 {
     if ($ll instanceof S2LatLng) {
         return $this->lat->contains($ll->lat()->radians()) && $this->lng->contains($ll->lng()->radians());
     } else {
         if ($ll instanceof S2LatLngRect) {
             return lat . contains($ll . lat) && lng . contains($ll . lng);
         } else {
             if ($ll instanceof S2Cell) {
                 return $this->contains($cell->getRectBound());
             } else {
                 if ($ll instanceof S2Point) {
                     return contains(new S2LatLng(p));
                 }
             }
         }
     }
 }