PHPackages                             ujamii/ujamii-geocoder - 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. ujamii/ujamii-geocoder

ActiveTypo3-cms-extension[Utility &amp; Helpers](/categories/utility)

ujamii/ujamii-geocoder
======================

Connecting http://geocoder-php.org/Geocoder with TYPO3 DataHandler API

v1.0.0(6y ago)3112[2 PRs](https://github.com/ujamii/ujamii-geocoder/pulls)MITPHP

Since Mar 28Pushed 3y ago1 watchersCompare

[ Source](https://github.com/ujamii/ujamii-geocoder)[ Packagist](https://packagist.org/packages/ujamii/ujamii-geocoder)[ RSS](/packages/ujamii-ujamii-geocoder/feed)WikiDiscussions master Synced 2w ago

READMEChangelogDependencies (4)Versions (12)Used By (0)

ujamii-geocoder
===============

[](#ujamii-geocoder)

[![Packagist](https://camo.githubusercontent.com/9a94c1d62df3dd72e3511084c39fec5b31cc347bd38def36188b147040cb0155/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f756a616d69692f756a616d69692d67656f636f6465722e7376673f636f6c6f72423d677265656e267374796c653d666c6174)](https://packagist.org/packages/ujamii/ujamii-geocoder)

Connecting  with TYPO3 DataHandler API. With this extension you can easily add geo data to records while they are changed by editors in the TYPO3 backend. You just have to configure how your entity "looks like" in the eyes of the geocoder via TCA anf that's it.

- [Installation](#installation)
- [Usage](#usage)
- [Example](#example)
- [TODOs](#todos)

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

[](#installation)

Currently only works in composer mode of TYPO3, so

```
composer require ujamii/ujamii-geocoder
```

Usage
-----

[](#usage)

Just add a new config array to the `ctrl` section of your TCA.

```
..['ctrl']['geocoder'] = [
	'triggerFields' => ['street', 'zip', 'city'],
	'getAddressString' => 'Your\Namespace\Domain\Model\YourEntity->getAddressString'
];
```

And provide a method (e.g. in an entity or helper class) to generate a compound address string based on the database data of one entity (example below).

### Options

[](#options)

Those options are possible:

**triggerFields (mandatory)**

Changes in those fields will trigger the process of geocoding.

**getAddressString (mandatory)**

A method called via `TYPO3\CMS\Core\Utility\GeneralUtility::callUserFunction` which is supposed to return a complete address string. The first parameter provided to this method is the merged data array (unchanged entity data from db + changed values from the backend form).

Example:

```
public function getAddressString($dataArray) {
	return $dataArray['location'];
}
```

**locale** (default: de)

The locale which is used in the geocoder.

**latField** (default: lat)

Name of the target field for the latitude value.

**lngField** (default: lng)

Name of the target field for the longitude value.

**httpClientClass** (default: \\Http\\Adapter\\Guzzle6\\Client::class)

Class name of the http client, see [possible packages](https://packagist.org/providers/php-http/client-implementation)

**providerClass** (default: \\Geocoder\\Provider\\GoogleMaps\\GoogleMaps::class)

Class name of the provider, see [possible packages](https://packagist.org/providers/geocoder-php/provider-implementation)

**providerParams**

Optional parameters for the provider. (e.g. an API key for Google Maps)

**geocoderClass** (default: \\Geocoder\\StatefulGeocoder::class)

Class name of the geocoder.

Example
-------

[](#example)

Let's assume the record is a news record in the database with 3 fields: location, lat and lng. The field location contains something like `Alexanderplatz, Berlin, Deutschland` and lat and lng are the fields you want to be filled automatically as soon as an editor changes the location.

Add this to your `typo3conf/ext/your_extension/Configuration/TCA/Overrides/tx_news_domain_model_news.php`or `typo3conf/ext/your_extension/Configuration/TCA/tx_ext_domain_model_entity.php` file.

```
$GLOBALS['TCA']['tx_news_domain_model_news']['ctrl']['geocoder'] = [
	'triggerFields' => ['street', 'zip', 'city'],
	'getAddressString' => 'Your\Namespace\Domain\Model\YourEntity->getAddressString',
	'providerParams' => [
        0 => null,
        1 => null,
        2 => ''
    ]
];
```

In `YourEntity`, add a method like this:

```
public function getAddressString($dataArray) {
	return sprintf('%s, %s %s', $dataArray['street'], $dataArray['zip'], $dataArray['city']);
}
```

Usage as command or in scheduler
--------------------------------

[](#usage-as-command-or-in-scheduler)

The extension also provides command to populate rows with 0 values for the lat/lng fields. It reads the configuration from TCA and iterates through each configured table, searching with lat = 0 OR lng = 0. For each matching row, the geocoding process is executed and the values are then updated in the database. The command produces some log output to track what has been done.

As it is a default Symfony console command, this can also be called by a scheduler task.

```
vendor/bin/typo3 geocoder:fillmissingdata
```

TODOs
-----

[](#todos)

- publish in TER
- right now providerParams\[0\] is always filled with the httpClient, which may not work for all providers

###  Health Score

31

—

LowBetter than 65% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity70

Established project with proven stability

 Bus Factor1

Top contributor holds 92.9% 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

Every ~85 days

Recently: every ~170 days

Total

9

Last Release

2381d ago

Major Versions

v0.3.0 → v1.0.02020-02-06

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1526725?v=4)[Michael Grundkötter](/maintainers/mgrundkoetter)[@mgrundkoetter](https://github.com/mgrundkoetter)

---

Top Contributors

[![mgrundkoetter](https://avatars.githubusercontent.com/u/1526725?v=4)](https://github.com/mgrundkoetter "mgrundkoetter (26 commits)")[![develth](https://avatars.githubusercontent.com/u/3374563?v=4)](https://github.com/develth "develth (2 commits)")

---

Tags

composer-packagegeocodertcatypo3typo3-cms-extensiontypo3-extension

### Embed Badge

![Health badge](/badges/ujamii-ujamii-geocoder/health.svg)

```
[![Health](https://phpackages.com/badges/ujamii-ujamii-geocoder/health.svg)](https://phpackages.com/packages/ujamii-ujamii-geocoder)
```

###  Alternatives

[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

103574.3k68](/packages/friendsoftypo3-content-blocks)[wazum/sluggi

TYPO3 extension for URL slug management with inline editing, auto-sync, locking, access control, and redirects

40543.5k](/packages/wazum-sluggi)[typo3/cms-scheduler

TYPO3 CMS Scheduler - Schedule tasks to run once or periodically at a specific time.

169.5M268](/packages/typo3-cms-scheduler)[typo3/cms-lowlevel

TYPO3 CMS Lowlevel - Technical analysis of the system. This includes raw database search, checking relations, counting pages and records etc.

178.3M358](/packages/typo3-cms-lowlevel)[typo3/cms-redirects

TYPO3 CMS Redirects - Create manual redirects, list existing redirects and automatically createredirects on slug changes.

167.6M84](/packages/typo3-cms-redirects)[typo3/cms-form

TYPO3 CMS Form - Flexible TYPO3 frontend form framework that comes with a backend editor interface.

147.8M287](/packages/typo3-cms-form)

PHPackages © 2026

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