Provides integration with the geoPHP library: https://github.com/phayes/geoPHP

This module does not provide any direct functionality to end-users or site-administrators. Install it only if another module requires it.

GeoPHP is a open-source native PHP library for doing geometry operations. It is written entirely in PHP and can therefore run on shared hosts. It can read and write a wide variety of formats (WKT, WKB, GeoJSON, KML, GPX, GeoRSS). It works with all Simple-Feature geometries (Point, LineString, Polygon, GeometryCollection etc.) and can be used to get centroids, bounding-boxes, area, and a wide variety of other useful information.

geoPHP also helpfully wraps the GEOS php extension so that applications can get a transparent performance increase when GEOS is installed on the server. When GEOS is installed, geoPHP also becomes fully compliant with the OpenGIS® Implementation Standard for Geographic information. With GEOS you get the full-set of openGIS functions in PHP like Union, IsWithin, Touches etc. This means that applications get a useful "core-set" of geometry operations that work in all environments, and an "extended-set"of operations for environments that have GEOS installed.

Read the API Reference at: https://github.com/phayes/geoPHP/wiki/API-Reference
Learn about GEOS integration at: https://github.com/phayes/geoPHP/wiki/GEOS

Credit

Both the original library, and this module, is maintained by Patrick Hayes (phayes).
A special thanks to the following organization for sponsoring the development of geoPHP: HighWire Press, GeoMemes Research and GeoScienceWorld.

Example

<?php
geophp_load
();
// Polygon WKT example
$polygon = geoPHP::load('POLYGON((1 1,5 1,5 5,1 5,1 1),(2 2,2 3,3 3,2 2))');
$area = $polygon->getArea();
$centroid = $polygon->getCentroid();
$centX = $centroid->getX();
$centY = $centroid->getY();
print
"This polygon has an area of ".$area." and a centroid with X=".$centX." and Y=".$centY;
// MultiPoint json example
print "<br/>";
$json =
'{
   "type": "MultiPoint",
   "coordinates": [
       [100.0, 0.0], [101.0, 1.0]
   ]
}'
;
$multipoint = geoPHP::load($json);
$multipoint_points = $multipoint->getComponents();
$first_wkt = $multipoint_points[0]->out('wkt');
print
"This multipolygon has ".$multipoint->numGeometries()." points. The first point has a wkt representation of ".$first_wkt;
?>

Project Information

Downloads