Download the PHP package shabushabu/laravel-postgis without Composer

On this page you can find all versions of the php package shabushabu/laravel-postgis. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package laravel-postgis

Laravel PostGIS

Latest Version on Packagist Total Downloads

Select collection of Laravel query expressions for PostGIS.

Supported minimum versions

PHP Laravel PostgreSQL PostGIS
8.2 11.23 16 3.4

Installation

[!CAUTION] Please note that this is a new package and, even though it is well tested, it should be considered pre-release software

Before installing the package you should install and enable the PostGIS extension.

You can install the package via composer:

Usage

Please see the expressions folder for a full list of supported PostGIS functions.

We do accept pull requests for any additional functions!

The expressions can be used in queries or in migrations.

PostGIS queries often have subtle differences between them, so the way we use this package at ShabuShabu is to extend the Eloquent builder for a given model and use the expressions in there.

Query examples

Getting the GeoJSON representation of a geometry column

Get a GeoJson Feature collection

Get an elevation profile from a linestring zm

Get a bounding box for a collection of geometries

Migration examples

Adding a generated column from coordinate columns

Setting the center for a given multipolygon

Setting the area in square kilometers

Model Casts

You can cast your geometry columns to their respective \Brick\Geo\Geometry counterparts. Here's an example:

Brick/Geo Integration

All the necessary wiring to use brick/geo with PostGIS is already done for you. You can just resolve ShabuShabu\PostGIS\Geometry from the container:

Mapbox Vector Tile Server

[!CAUTION] Please note that atm you will need to install the develop branch to use this feature! This feature is not currently covered by any tests, so use at your own risk.

Add a gate

You will need to add a gate to the boot method of your AppServiceProvider to ensure that only certain users can use the tile server:

Create sources

The next step is to create sources for all your MVTs. All sources should extend the ShabuShabu\PostGIS\Servers\Tiles\Source class.

The name method must return a unique name identifying the source. This value will also be used as the name for the layer within the MVT.

The query method must return an id and a geom column, plus any optional columns you need for display.

Finally, the columns method should return all the optional column names.

Additionally, you also have access to the current request via $this->request.

Add sources to the config file

The last required step is to add your sources to the config file:

Additional Steps

Optionally, you can also adjust the route settings in the config file, like setting middleware, changing the route prefix or rolling your own setup!

Integrating the tile server on the frontend

Here's an example how you can use the tile server with Mapbox. The server can be used with any map provider that supports MVTs, tho.

To request multiple layers, just comma-separate them:

GeoJson Feature Server

[!CAUTION] Please note that atm you will need to install the develop branch to use this feature! This feature is not currently covered by any tests, so use at your own risk.

Add a gate

You will need to add a gate to the boot method of your AppServiceProvider to ensure that only certain users can use the feature server:

Add UIDs to any models

The feature server makes use of globally unique IDs via our UIDs for Laravel package.

Please follow the installation instruction there to set up UIDs for your feature-enabled models!

Add the Geomable interface to any models

Additionally, any feature-enabled models need to implement the ShabuShabu\PostGIS\Servers\Features\Contracts\Geomable interface.

The geoJsonColumns method should return an array of column strings or query expressions. These will be added to the GeoJson response as properties:

Additional Steps

Optionally, you can also adjust the route settings in the config file, like setting middleware, changing the route prefix or rolling your own setup!

Integrating the feature server on the frontend

Here's an example how you can use the feature server with Mapbox. The server can be used with any map provider that supports GeoJson, tho.

GeoJson Collection Server

[!CAUTION] Please note that atm you will need to install the develop branch to use this feature! This feature is not currently covered by any tests, so use at your own risk.

Add a gate

You will need to add a gate to the boot method of your AppServiceProvider to ensure that only certain users can use the collection server:

Create collections

The next step is to create collections. All collections should extend the ShabuShabu\PostGIS\Servers\Features\Collection class.

The name method must return a unique name identifying the collection.

The query method must return a geom column, plus any optional columns you want to pass along as properties.

Additionally, you also have access to the current request via $this->request.

Add collections to the config file

The last required step is to add your collections to the config file:

Additional Steps

Optionally, you can also adjust the route settings in the config file, like setting middleware, changing the route prefix or rolling your own setup!

Integrating the collection server on the frontend

Here's an example how you can use the collection server with Mapbox. The server can be used with any map provider that supports GeoJson, tho.

Testing

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

Disclaimer

This is a 3rd party package and ShabuShabu is not affiliated with either Laravel or PostGIS.

License

The MIT License (MIT). Please see License File for more information.


All versions of laravel-postgis with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
brick/geo Version ^0.11.1
illuminate/contracts Version ^11.0
spatie/laravel-package-tools Version ^1.16
tpetry/laravel-query-expressions Version ^1.4
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package shabushabu/laravel-postgis contains the following files

Loading the files please wait ....