Skip to content

Commit e931fa8

Browse files
committed
fix: breaking changes from upstream package
1 parent a921aa6 commit e931fa8

2 files changed

Lines changed: 13 additions & 22 deletions

File tree

src/Factory.php

Lines changed: 9 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,25 @@
22

33
namespace Javaabu\Geospatial;
44

5-
use Geometry as geoPHPGeometry;
6-
use geoPHP;
5+
use Brick\Geo\Geometry as BrickGeometry;
6+
use Brick\Geo\MultiPoint;
77
use InvalidArgumentException;
88
use Javaabu\Geospatial\Objects\Point;
99
use Javaabu\Geospatial\Objects\Polygon;
1010
use MatanYadaev\EloquentSpatial\Objects\Geometry;
11-
use Point as geoPHPPoint;
12-
use Polygon as geoPHPPolygon;
1311

1412
class Factory extends \MatanYadaev\EloquentSpatial\Factory
1513
{
1614
public static function parse(string $value): Geometry
1715
{
18-
try {
19-
/** @var geoPHPGeometry|false $geoPHPGeometry */
20-
$geoPHPGeometry = geoPHP::load($value);
21-
} finally {
22-
if (! isset($geoPHPGeometry) || ! $geoPHPGeometry) {
23-
throw new InvalidArgumentException('Invalid spatial value');
24-
}
25-
}
26-
27-
return self::createFromGeometry($geoPHPGeometry);
16+
return parent::parse($value);
2817
}
29-
protected static function createFromGeometry(geoPHPGeometry $geometry): Geometry
18+
19+
protected static function createFromGeometry(BrickGeometry $geometry, bool $isRoot = true): Geometry
3020
{
3121
$srid = is_int($geometry->getSRID()) ? $geometry->getSRID() : 0;
3222

33-
if ($geometry instanceof geoPHPPoint) {
23+
if ($geometry instanceof Point) {
3424
if ($geometry->coords[0] === null || $geometry->coords[1] === null) {
3525
throw new InvalidArgumentException('Invalid spatial value');
3626
}
@@ -39,16 +29,14 @@ protected static function createFromGeometry(geoPHPGeometry $geometry): Geometry
3929
}
4030

4131
$components = collect($geometry->components)
42-
->map(static function (geoPHPGeometry $geometryComponent): Geometry {
32+
->map(static function (MultiPoint $geometryComponent): Geometry {
4333
return self::createFromGeometry($geometryComponent);
4434
});
4535

46-
if ($geometry::class === geoPHPPolygon::class) {
36+
if ($geometry::class === Polygon::class) {
4737
return new Polygon($components, $srid);
4838
}
4939

50-
return parent::createFromGeometry($geometry);
40+
return parent::createFromGeometry($geometry, $isRoot);
5141
}
52-
53-
5442
}

src/GeospatialServiceProvider.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use Illuminate\Support\Facades\Validator;
66
use Illuminate\Support\ServiceProvider;
7+
use Javaabu\Geospatial\Objects\Point;
78
use Javaabu\Geospatial\Objects\Polygon;
89
use MatanYadaev\EloquentSpatial\Enums\Srid;
910

@@ -22,9 +23,11 @@ public function boot()
2223
*/
2324
public function register()
2425
{
25-
26+
\MatanYadaev\EloquentSpatial\EloquentSpatial::usePoint(Point::class);
27+
\MatanYadaev\EloquentSpatial\EloquentSpatial::usePolygon(Polygon::class);
2628
}
2729

30+
2831
protected function registerCustomValidationRules()
2932
{
3033
/**

0 commit comments

Comments
 (0)