PHPackages                             ventusforge/neos-nominatim - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. ventusforge/neos-nominatim

ActiveNeos-application[Utility &amp; Helpers](/categories/utility)

ventusforge/neos-nominatim
==========================

Nominatim Integration for Neos

0.1.0(3mo ago)022↓22.2%[1 PRs](https://github.com/VentusForge/VentusForge.Nominatim/pulls)GPL-3.0-or-laterPHPPHP &gt;=8.3CI failing

Since Feb 16Pushed 3mo agoCompare

[ Source](https://github.com/VentusForge/VentusForge.Nominatim)[ Packagist](https://packagist.org/packages/ventusforge/neos-nominatim)[ RSS](/packages/ventusforge-neos-nominatim/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (1)Versions (3)Used By (0)

VentusForge.Nominatim
=====================

[](#ventusforgenominatim)

API connector for the Nominatim API (OpenStreetMap).

This package provides a simple HTTP client and a service to retrieve geocoordinates and address data via Nominatim search. Responses are cached by default using a Neos cache frontend.

Installation
------------

[](#installation)

Install with Composer:

```
composer require ventusforge/neos-nominatim
```

Configuration
-------------

[](#configuration)

You can configure the base URL and default query parameters in `Configuration/Settings.yaml`. Example (the package includes these defaults):

```
VentusForge:
  Nominatim:
    url: 'https://nominatim.openstreetmap.org/search.php'
    defaultQueryParams:
      format: 'jsonv2'
      accept-language: 'de-DE'
      countrycodes: 'de'
      addressdetails: 1
```

The `defaultQueryParams` are appended to every request sent to Nominatim (for example: language, output format, country codes, address details).

Public classes / API
--------------------

[](#public-classes--api)

- `VentusForge\Nominatim\Client`

    - `get(?string $street = null, ?string $city = null, ?string $postalcode = null, ?string $state = null, ?string $country = null): ?array`
        - Builds a Nominatim request using individual address components (street, city, postalcode, state, country).
    - `search(string $query): ?array`
        - Performs a free-text search (`q`) against Nominatim.
- `VentusForge\Nominatim\Service\GeoLocalizationService`

    - A wrapper around `Client` that uses Neos `VariableFrontend` caching and exposes the same `get(...)` and `search(...)` methods.
    - Cache keys are generated from the request parameters (MD5); cached results are returned when available.

Examples (Neos/Flow)
--------------------

[](#examples-neosflow)

Inject the `GeoLocalizationService` into a Flow controller or service:

```
use VentusForge\Nominatim\Service\GeoLocalizationService;
use Neos\Flow\Annotations\Flow;

class SomeController {
    #[Flow\Inject]
    protected GeoLocalizationService $geoLocalizationService;

    public function exampleAction(): void
    {
        // Free-text search
        $result = $this->geoLocalizationService->search('Brandenburg Gate, Berlin');

        // Search by address components
        $result2 = $this->geoLocalizationService->get('Unter den Linden 6', 'Berlin', '10117', 'Berlin', 'DE');

        // $result / $result2 are arrays (or null) as returned by Nominatim
    }
}
```

If you prefer to call the API directly, you can use the `Client` class:

```
use VentusForge\Nominatim\Client;

// Assuming the Client is injected by Flow
$result = $this->client->search('Cologne Cathedral');
```

Caching
-------

[](#caching)

`GeoLocalizationService` uses a Neos `VariableFrontend` cache (`geoLocalizationCache`) to avoid repeated external requests. Adjust your cache configuration in your project if necessary.

Error handling
--------------

[](#error-handling)

On HTTP errors the client throws an exception (`Neos\Flow\Http\Client\Exception`). Check status codes and handle potential exceptions in your application code.

License
-------

[](#license)

This package is licensed under the terms described in the repository `LICENSE` file.

###  Health Score

36

—

LowBetter than 82% of packages

Maintenance82

Actively maintained with recent releases

Popularity8

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity40

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 66.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

91d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/a5cc1e2d24906f32c43462aef049d82c9cefc43a4624dc8cf81b4c7c36e57236?d=identicon)[erkenes](/maintainers/erkenes)

---

Top Contributors

[![erkenes](https://avatars.githubusercontent.com/u/8766722?v=4)](https://github.com/erkenes "erkenes (2 commits)")[![ventusforge-action-bot[bot]](https://avatars.githubusercontent.com/in/2676936?v=4)](https://github.com/ventusforge-action-bot[bot] "ventusforge-action-bot[bot] (1 commits)")

---

Tags

Neosneoscmsnominatim

### Embed Badge

![Health badge](/badges/ventusforge-neos-nominatim/health.svg)

```
[![Health](https://phpackages.com/badges/ventusforge-neos-nominatim/health.svg)](https://phpackages.com/packages/ventusforge-neos-nominatim)
```

###  Alternatives

[shel/neos-hyphens

A plugin for Neos CMS which provides hyphens for the inline editor

20200.7k1](/packages/shel-neos-hyphens)[shel/neos-colorpicker

A plugin for Neos CMS which provides a colorpicker editor

1494.4k6](/packages/shel-neos-colorpicker)[techdivision/ckstyles

Neos package which enables you adding your custom style classes for the CkEditor with a simple Yaml configuration

21166.3k](/packages/techdivision-ckstyles)[breadlesscode/neos-blog

Ready to use blog package

161.4k](/packages/breadlesscode-neos-blog)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
