Geocoder\Provider\Nominatim::geocode PHP Метод

geocode() публичный Метод

{@inheritDoc}
public geocode ( $address )
    public function geocode($address)
    {
        // This API does not support IPv6
        if (filter_var($address, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) {
            throw new UnsupportedOperation('The ' . get_called_class() . ' provider does not support IPv6 addresses.');
        }
        if ('127.0.0.1' === $address) {
            return $this->returnResults([$this->getLocalhostDefaults()]);
        }
        $query = sprintf($this->getGeocodeEndpointUrl(), urlencode($address), $this->getLimit());
        $content = $this->executeQuery($query);
        if (empty($content)) {
            throw new NoResult(sprintf('Could not execute query "%s".', $query));
        }
        $doc = new \DOMDocument();
        if (!@$doc->loadXML($content) || null === $doc->getElementsByTagName('searchresults')->item(0)) {
            throw new NoResult(sprintf('Could not execute query "%s".', $query));
        }
        $searchResult = $doc->getElementsByTagName('searchresults')->item(0);
        $places = $searchResult->getElementsByTagName('place');
        if (null === $places || 0 === $places->length) {
            throw new NoResult(sprintf('Could not execute query "%s".', $query));
        }
        $results = [];
        foreach ($places as $place) {
            $results[] = array_merge($this->getDefaults(), $this->xmlResultToArray($place, $place));
        }
        return $this->returnResults($results);
    }