PHPackages                             loveyu/geophp8 - 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. loveyu/geophp8

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

loveyu/geophp8
==============

A little geo spatial library for PHP based on Geo Rust and Turf.js

2.0.0(1y ago)013MITPHPPHP &gt;=8.1

Since Dec 16Pushed 1y agoCompare

[ Source](https://github.com/loveyu/GeoPHP8)[ Packagist](https://packagist.org/packages/loveyu/geophp8)[ RSS](/packages/loveyu-geophp8/feed)WikiDiscussions master Synced 1mo ago

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

GeoPHP
======

[](#geophp)

GeoPHP is a library of geospatial functions based on GeoRust and Turf.js.

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

[](#installation)

Install the library running:

`composer require loveyu/geophp8`

Usage
-----

[](#usage)

```
use \JWare\GeoPHP\Polygon;
use \JWare\GeoPHP\Point;

$polygon = new Polygon([
    new Point(1, -1),
    new Point(2, 1),
    new Point(3, -1),
    new Point(2, -2),
    new Point(1, -1)
]);

$point = new Point(-1, 2);
$point2 = new Point(2, 2);

$polygon->containsPoint($point); // False
$polygon->containsPoint($point2); // True

```

Please read the [documentation](https://jware-solutions.github.io/geophp-documentation/ "Full documentation") to see the full method list available.

Why another Geospatial library?
-------------------------------

[](#why-another-geospatial-library)

GeoPHP was born due to the lack of a modern geospatial library for PHP. The tools available today are not published in the Composer repositories and are not easy to use (some requires DB drivers or constructs the Geometries from complex Strings). GeoPHP offers:

- 🚀 Modern and fast: made in PHP 7 with fast algorithms
- 🥳 Friendly and simple interface: implemented with the Object Oriented Paradigm, allows its easy and fast use by the developer.
- 👨🏼‍💻 Easy access: the library is published in Composer for quick import into your projects.
- 🛠 Tested: all methods are covered by unit tests.
- 🌟 A lot of examples!

Contributing
------------

[](#contributing)

First of all, thanks for consider contributing to the project! Please, read [CONTRIBUTING.md](/CONTRIBUTING.md) for more.

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance42

Moderate activity, may be stable

Popularity5

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

 Bus Factor1

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

509d ago

### Community

Maintainers

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

---

Top Contributors

[![Genarito](https://avatars.githubusercontent.com/u/18036578?v=4)](https://github.com/Genarito "Genarito (42 commits)")[![loveyu](https://avatars.githubusercontent.com/u/1912373?v=4)](https://github.com/loveyu "loveyu (4 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/loveyu-geophp8/health.svg)

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

PHPackages © 2026

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