public function testRingPolygonFromObjectsGetLastRing() { $ring1 = new LineString(array(new Point(0, 0), new Point(10, 0), new Point(10, 10), new Point(0, 10), new Point(0, 0))); $ring2 = new LineString(array(new Point(5, 5), new Point(7, 5), new Point(7, 7), new Point(5, 7), new Point(5, 5))); $polygon = new Polygon(array($ring1, $ring2)); $this->assertEquals($ring2, $polygon->getRing(-1)); }
/** * expects an array that conforms to a geojson object **/ public static function buildPolygonFromGeoJsonArray(array $polygon_array, $srid) { if (empty($polygon_array)) { throw new \InvalidArgumentException("polygon_array may not be empty"); } if (isset($polygon_array['geometry']['coordinates'])) { $lineStringArray = $polygon_array['geometry']['coordinates']; } else { if (isset($polygon_array['coordinates'])) { $lineStringArray = $polygon_array['coordinates']; } } $ring = array(); foreach ($lineStringArray as $lineString) { foreach ($lineString as $point) { $ring[] = new Point($point[0], $point[1]); } } $myLineString = new LineString($ring); $myLineString->close(); $polygon = new CrEOFPolygon($rings = array($myLineString)); $polygon->setSRID($srid); return $polygon; }
public function testJson() { $expected = '{"type":"Polygon","coordinates":[[[0,0],[10,0],[10,10],[0,10],[0,0]],[[0,0],[10,0],[10,10],[0,10],[0,0]]]}'; $rings = array(array(array(0, 0), array(10, 0), array(10, 10), array(0, 10), array(0, 0)), array(array(0, 0), array(10, 0), array(10, 10), array(0, 10), array(0, 0))); $polygon = new Polygon($rings); $this->assertEquals($expected, $polygon->toJson()); }