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));
 }
Exemple #2
0
 /**
  * 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());
 }