2017 © Pedro Peláez
 

yii2-extension yii2-postgis

Yii2-extension to work with postgis data

image

nanson/yii2-postgis

Yii2-extension to work with postgis data

  • Sunday, March 18, 2018
  • by nanson
  • Repository
  • 5 Watchers
  • 11 Stars
  • 9,286 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 4 Forks
  • 0 Open issues
  • 4 Versions
  • 14 % Grown

The README.md

Yii2 Postgis

Extension for working with Postgis. As intermediate format used Geo Json., (*1)

Installing

The preferred way to install this extension is through Composer., (*2)

{
  "require": {
    "nanson/yii2-postgis": "*"
  }
}

GeometryBehavior

Converts coordinates array to SQL expression for saving in postgis binary format before insert/update and from postgis binary to array after find., (*3)

 GeometryBehavior::className(),
                'type' => GeometryBehavior::GEOMETRY_POINT,
                'attribute' => 'point',
                // explicitly set custom db connection if you do not want to use
                // static::getDb() or Yii::$app->getDb() connections
                'db' => 'db_custom'
            ],
            [
                'class' => GeometryBehavior::className(),
                'type' => GeometryBehavior::GEOMETRY_LINESTRING,
                'attribute' => 'line',
                // skip attribute if it was not selected as Geo Json (by PostgisQueryTrait), because it requires a separate query.
                'skipAfterFindPostgis' => true,
            ],
        ];
    }

    // ...

}

// ...

$model = new MyModel;

$model->point = [39.234, 54.456];
$model->line = [[102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0]];

$model->save();

?>
Option Type Default Description
attribute string attribute that will be automatically handled
type string geometry type: Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon
skipAfterFindPostgis boolean false skip convertion after find, if data in postgis binary (it requires a separate query, look PostgisQueryTrait)

StBufferBehavior

Generate SQL expression before insert/update based on geometry and radius, (*4)

 GeometryBehavior::className(),
                'attribute' => 'point',
                'type' => GeometryBehavior::GEOMETRY_POINT,
            ],
            [
                'class' => StBufferBehavior::className(),
                'attribute' => 'buffer',
                'attributeGeometry' => 'point',
                'attributeRadius' => 'radius',
            ],
        ];
    }

    // ...

}

// ...

$model = new MyModel;

$model->point = [39.234, 54.456];
$model->radius = 5;

// It will be save St_Buffer for `$model->point` with `$model->radius` in `$model->buffer`
$model->save();

?>
Option Type Default Description
attribute string attribute for saving buffer
attributeGeometry string attribute with geometry
attributeRadius string attribute with radius
geography boolean false build buffer as geography
radiusUnit string deg for geomtery or m for geography units of buffer radius: deg, m, km
options array [] additional options for St_Buffer function

PostgisQueryTrait

Extends ActiveQuery for working with Postgis data., (*5)

 MyQuery::className(),
        ], [get_called_class()]);
    }
}
?>
Option Type Default Description
autoGeoJson boolean true select all geo columns as GeoJson automatically
geoFields array all table columns with data type geometry or geography table columns, that must be selected as Geo Json
exceptGeoFields boolean false exclude all geo columns from select statement
exceptFields array [] columns, which must be excluded from select statement
Method Description
withGeoFields($fields=null) Add columns, that must be selected as Geo Json. Accepts null, string, array. If fields is null - all geoFileds will be added.
excludeFields($fields=null) Exclude columns from select statement. Accepts null, string, array. If fields is null - all exceptFields will be excluded from select statement.

GeoJsonHelper

Helper for working with Geo Json, (*6)

Method Returns Description
toArray($geoJson) array returns coordinates array by Geo Json
toGeoJson($type, $coordinates, $srid=4326) string (geo json) returns Geo Json by geometry type, coordinates array and SRID
toGeometry($type, $coordinates, $srid=4326) string (sql expression) the same, that toGeoJson, but wraps result by "ST_GeomFromGeoJSON('$geoJson')"

The Versions

18/03 2018

dev-develop

dev-develop https://github.com/nanson/yii2-postgis

Yii2-extension to work with postgis data

  Sources   Download

BSD-3-Clause

The Requires

 

by Denis Chernyavsky

extension postgresql postgres yii2 yii behavior postgre postgis spatial

31/05 2017

dev-master

9999999-dev https://github.com/nanson/yii2-postgis

Yii2-extension to work with postgis data

  Sources   Download

BSD-3-Clause

The Requires

 

by Denis Chernyavsky

extension postgresql postgres yii2 yii behavior postgre postgis spatial

15/02 2017

1.0.1

1.0.1.0 https://github.com/nanson/yii2-postgis

Yii2-extension to work with postgis data

  Sources   Download

BSD-3-Clause

The Requires

 

by Denis Chernyavsky

extension postgresql postgres yii2 yii behavior postgre postgis spatial

16/07 2016

1.0

1.0.0.0 https://github.com/nanson/yii2-postgis

Yii2-extension to work with postgis data

  Sources   Download

BSD-3-Clause

The Requires

 

by Denis Chernyavsky

extension postgresql postgres yii2 yii behavior postgre postgis