Skip to content

Commit 051c008

Browse files
committed
simplify createFromGeometry
1 parent 48abb03 commit 051c008

File tree

1 file changed

+25
-27
lines changed

1 file changed

+25
-27
lines changed

src/Factory.php

Lines changed: 25 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
namespace MatanYadaev\EloquentSpatial;
66

7-
use Collection as geoPHPGeometryCollection;
87
use Geometry as geoPHPGeometry;
98
use geoPHP;
109
use Illuminate\Support\Collection;
@@ -42,35 +41,34 @@ public static function parse(string $value): Geometry
4241

4342
protected static function createFromGeometry(geoPHPGeometry $geometry): Geometry
4443
{
45-
if ($geometry instanceof geoPHPGeometryCollection) {
46-
$components = collect($geometry->components)
47-
->map(static function (geoPHPGeometry $geometryComponent): Geometry {
48-
return self::createFromGeometry($geometryComponent);
49-
});
50-
51-
$className = $geometry::class;
52-
53-
if ($className === geoPHPMultiPoint::class) {
54-
return self::createMultiPoint($components);
55-
}
56-
if ($className === geoPHPLineString::class) {
57-
return self::createLineString($components);
58-
}
59-
if ($className === geoPHPPolygon::class) {
60-
return self::createPolygon($components);
61-
}
62-
if ($className === geoPHPMultiLineString::class) {
63-
return self::createMultiLineString($components);
64-
}
65-
if ($className === geoPHPMultiPolygon::class) {
66-
return self::createMultiPolygon($components);
67-
}
68-
69-
return self::createGeometryCollection($components);
70-
}
7144
if ($geometry instanceof geoPHPPoint) {
7245
return self::createPoint($geometry->coords[1], $geometry->coords[0]);
7346
}
47+
48+
$components = collect($geometry->components)
49+
->map(static function (geoPHPGeometry $geometryComponent): Geometry {
50+
return self::createFromGeometry($geometryComponent);
51+
});
52+
53+
$className = $geometry::class;
54+
55+
if ($className === geoPHPMultiPoint::class) {
56+
return self::createMultiPoint($components);
57+
}
58+
if ($className === geoPHPLineString::class) {
59+
return self::createLineString($components);
60+
}
61+
if ($className === geoPHPPolygon::class) {
62+
return self::createPolygon($components);
63+
}
64+
if ($className === geoPHPMultiLineString::class) {
65+
return self::createMultiLineString($components);
66+
}
67+
if ($className === geoPHPMultiPolygon::class) {
68+
return self::createMultiPolygon($components);
69+
}
70+
71+
return self::createGeometryCollection($components);
7472
}
7573

7674
protected static function createPoint(float $latitude, float $longitude): Point

0 commit comments

Comments
 (0)