# geocoder-php/geocoder

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/geocoder-php-geocoder).**

3,975 stars · 520 forks · PHP · MIT

## Links

- GitHub: https://github.com/geocoder-php/Geocoder
- Homepage: https://geocoder-php.org
- awesome-repositories: https://awesome-repositories.com/repository/geocoder-php-geocoder.md

## Topics

`geocoder`

## Description

Geocoder is a PHP library for converting addresses to geographic coordinates and coordinates back into addresses using various third-party services. It functions as a multi-provider geocoding wrapper and a reverse geocoding engine, providing an abstraction layer to manage multiple geocoding APIs.

The project allows for switching between providers or chaining requests for failover to ensure high availability. It also serves as a GeoIP location resolver, translating IP addresses into geographic coordinates and location details through either remote services or local binary databases.

The library includes capabilities for exporting location and address objects into standardized geographic formats. It provides utilities for custom address string formatting, locale-aware querying, and result caching to reduce redundant network requests.

The system supports the implementation of custom providers and includes performance profiling to measure the time and memory spent on geolocation calls.

## Tags

### Data & Databases

- [Geocoding Libraries](https://awesome-repositories.com/f/data-databases/geospatial-data-services/geocoding-libraries.md) — Provides a comprehensive PHP library for converting addresses to coordinates and vice versa using third-party services.
- [Geographic Geocoders](https://awesome-repositories.com/f/data-databases/geographic-geocoders.md) — Translates detailed address objects into geographic coordinates using structured parameters to avoid string parsing errors. ([source](https://cdn.jsdelivr.net/gh/geocoder-php/geocoder@master/README.md))
- [Reverse Geocoding](https://awesome-repositories.com/f/data-databases/reverse-geocoding.md) — Converts geographic latitude and longitude coordinates into human-readable street addresses and location descriptions.
- [Reverse Geocoding Services](https://awesome-repositories.com/f/data-databases/reverse-geocoding-services.md) — Translates geographic latitude and longitude coordinates back into human-readable street addresses.
- [IP Geolocation](https://awesome-repositories.com/f/data-databases/geolocation-databases/ip-geolocation.md) — Provides capabilities to resolve IP addresses into geographic coordinates using local binary databases. ([source](https://geocoder-php.org/docs))
- [Geographic Data Exporters](https://awesome-repositories.com/f/data-databases/query-translators/multi-format-exports/geographic-data-exporters.md) — Exports location and address objects into standardized geographic formats like GeoJSON and KML using specific drivers.
- [Geolocation Result Caches](https://awesome-repositories.com/f/data-databases/visitor-identification/result-caching/geolocation-result-caches.md) — Caches geolocation API responses using configurable drivers to reduce redundant network requests and latency.

### Artificial Intelligence & ML

- [Multi-Provider Abstractions](https://awesome-repositories.com/f/artificial-intelligence-ml/model-provider-integrations/multi-provider-abstractions.md) — Provides a common abstraction layer to route requests across multiple different geocoding API providers.

### Graphics & Multimedia

- [Reverse Geocoding](https://awesome-repositories.com/f/graphics-multimedia/reverse-geocoding.md) — Translates geographic latitude and longitude coordinates into human-readable street addresses and place names. ([source](https://geocoder-php.org/docs))
- [Multi-Provider](https://awesome-repositories.com/f/graphics-multimedia/reverse-geocoding/multi-provider.md) — Manages multiple geocoding providers through a pluggable interface to ensure high availability and failover.
- [Failover Chaining](https://awesome-repositories.com/f/graphics-multimedia/reverse-geocoding/multi-provider/failover-chaining.md) — Iterates through a prioritized sequence of geocoding providers and returns the result from the first successful match. ([source](https://cdn.jsdelivr.net/gh/geocoder-php/geocoder@master/README.md))

### Mobile Development

- [Geocoding Translation](https://awesome-repositories.com/f/mobile-development/coordinate-conversion/geocoding-translation.md) — Translates street addresses or place names into latitude and longitude coordinates using various external services.

### Networking & Communication

- [IP Geolocation](https://awesome-repositories.com/f/networking-communication/network-addressing/ip-addressing-fundamentals/client-ip-address-retrieval/ip-geolocation.md) — Translates IP addresses into geographical coordinates and location details using third-party providers. ([source](https://geocoder-php.org/docs/providers/HostIp))

### Software Engineering & Architecture

- [Provider Aggregators](https://awesome-repositories.com/f/software-engineering-architecture/provider-aggregators.md) — Provides an abstraction layer that aggregates multiple geocoding APIs to manage failover and multi-source lookups.
- [Chain of Responsibility Patterns](https://awesome-repositories.com/f/software-engineering-architecture/chain-of-responsibility-patterns.md) — Uses a chain of responsibility pattern to iterate through geocoding services until a successful result is found.
- [Custom Provider Implementations](https://awesome-repositories.com/f/software-engineering-architecture/custom-provider-implementations.md) — Provides extensibility mechanisms for creating custom HTTP adapters and API providers via defined interfaces. ([source](https://github.com/geocoder-php/Geocoder/blob/2.x/README.md))
- [Plugin Interface Contracts](https://awesome-repositories.com/f/software-engineering-architecture/extensible-plugin-architectures/interface-plugins/plugin-interface-contracts.md) — Defines standard interface contracts for geocoding services to decouple core logic from specific third-party API implementations.

### System Administration & Monitoring

- [Geographic IP Lookups](https://awesome-repositories.com/f/system-administration-monitoring/geographic-ip-lookups.md) — Resolves IP addresses into geographic coordinates and location details using local databases or remote services.

### User Interface & Experience

- [Geocoding Converters](https://awesome-repositories.com/f/user-interface-experience/coordinate-systems/coordinate-converters/geocoding-converters.md) — Translates text-based addresses or place names into geographic latitude and longitude coordinates. ([source](https://geocoder-php.org/docs))

### Business & Productivity Software

- [GeoIP Location Identification](https://awesome-repositories.com/f/business-productivity-software/geoip-location-identification.md) — Resolves the geographic location of network hosts using IP addresses and GeoIP databases.
