• Модуль: location
  • Путь к файлу: ~/bitrix/modules/location/lib/source/osm/repository.php
  • Класс: BitrixLocationSourceOsmRepository
  • Вызов: Repository::autocomplete
public function autocomplete(array $params): array
{
	$result = $this->api->autocomplete([
		'q' => $params['q'],
		'lang' => $this->osmSource->convertLang($params['lang']),
		'lat' => $params['lat'] ?? null,
		'lon' => $params['lon'] ?? null,
	]);

	if (
		is_array($result)
		&& isset($result['features'])
		&& is_array($result['features'])
	)
	{
		foreach ($result['features'] as $key => $feature)
		{
			if (!isset($feature['geometry']))
			{
				continue;
			}

			$geometry = Manager::makeConverter(Manager::FORMAT_ARRAY)->read($feature['geometry']);
			if (!$geometry instanceof Point)
			{
				continue;
			}

			$disputeScenario = DisputedAreaService::getInstance()->getDisputeByPoint($geometry);
			if (!$disputeScenario)
			{
				continue;
			}
			$disputeScenario->adjustAutocompleteItem($result['features'][$key]['properties']);
		}
	}

	return $result;
}