• Модуль: location
  • Путь к файлу: ~/bitrix/modules/location/lib/geometry/type/polygon.php
  • Класс: BitrixLocationGeometryTypePolygon
  • Вызов: Polygon::contains
public function contains(BaseGeometry $geometry): ?bool
{
	if (!$geometry instanceof Point)
	{
		return null;
	}

	if (!isset($this->components[0]))
	{
		return null;
	}

	/** @var LineString $outerRing */
	$outerRing = $this->components[0];
	if (!$this->isPointInsideClosedRing($outerRing, $geometry))
	{
		return false;
	}

	$innerRings = array_slice($this->components, 1);
	foreach ($innerRings as $innerRing)
	{
		if ($this->isPointInsideClosedRing($innerRing, $geometry))
		{
			return false;
		}
	}

	return true;
}