GeoPHP

API Reference

View project on GitHub

Table of Contents

geoPHP static class

geoPHP provides a static class that contains useful utility functions. All methods must be called statically.

Example

$geometry = geoPHP::load('MULTILINESTRING((10 10,20 20,10 40))','wkt');
$reduced_geometry = geoPHP::geometryReduce($geometry);

Static Methods

Method Description Returns
version Provides the current geoPHP version. Useful if you need to check compatablity Numeric String
load Load from an adapter format (like wkt) into a geometry. The first argument is the data, the second one is the format of the data ('wkt','wkb','json','kml','gpx','google_geocode'). All additional arguments are passed along to the read method of the relevant adapter Geometry
getAdapterMap Get a list of adapters as an array keyed by the value that should be passed to geoPHP::load Array
geometryList List all geometry types Array
geosToGeometry Given a GEOSGeometry, get a geoPHP geometry Geometry
geometryReduce Reduce a geometry, or an array of geometries, into their \'lowest\' available common geometry. For example a GeometryCollection of only points will become a MultiPoint, while a multi-point containing a single point will return a point. An array of geometries can be passed and they will be compiled into a single geometry. Geometry
geosInstalled Check if the GEOS php extension is installed and working Boolean

Adapters

Adapters are responsible for getting data in and out of geoPHP Geometries. Generally you will use an adapter to load data into a geoPHP geometry, do various manipulations on the geometry, then use another adapter to write it out to another (or the same) format. You can also use adapters by themselves to simply do conversion from one format to another (See example-format-converter for an example of this). Adapters should be instantiated and not called statically.

Class Hierarchy

  • GeoAdapter Abtract Class
    • WKT Enables reading and writing WKT (Well Known Text)
      • EWKT Enables reading and writing Extended-WKT
    • WKB Enables reading and writing WKB (Well Known Binary). This is very fast.
      • EWKT Enables reading and writing Extended-WKB (for use with PostGIS)
    • GeoJSON Enables reading and writing GeoJSON
    • KML Enables reading and writing KML (Google Earth)
    • GoogleGeocode Enables geocoding and reverse-geocoding via google geocoding API
    • GPX Enables reading and writing GPX (from handheld GPS devices)
    • GeoRSS Enables reading and writing of GeoRSS

Example

$wkb_reader = new WKB();
$geometry = $wkb_reader->read('0101000000000000000000f03f000000000000f03f',TRUE);
$wkt_writer = new wkt();
$wkt = $wkt_writer->write($geometry);

Methods

Method Description Returns
read Read in input (generally a string) and return a Geometry Geometry
write Write out the given geometry into the adapter formater String

Geometries

Geometries form the heart of the geoPHP library. Once you have loaded your data into a Geometry object, you have access to all the various methods detailed below for doing conversions, transformations, and operations. While generally you would use an adapter to get a Geometry object, they can also be built by hand. See the constructor methods in the classes to see how to do this. GEOS-php extension needs to be installed in order to use some of the advanced methods (detailed below).

Class Hierarchy

  • Geometry
    • Point
    • Collection
      • LineString
      • Polygon
      • MultiLineString
      • MultiPoint
      • MultiPolygon
      • GeometryCollection

Example

$poly1 = $geoPHP::load('POLYGON((30 10,10 20,20 40,40 40,30 10))','wkt');
$poly2 = $geoPHP::load('POLYGON((35 10,10 20,15 40,45 45,35 10),(20 30, 35 35, 30 20, 20 30))','wkt');
$combined_poly = $poly1->union($poly2);
$kml = $combined_poly->out('kml');

Methods

Common Methods

Method Description Returns
out Outputs the geometry into the specified adapter format. Available formats are wkt, wkb, json, kml, gpx, google_geocode String
area The area of this Polygon (or GeometryCollection), as measured in the spatial reference system of the geometry Float
boundary Returns the closure of the combinatorial boundary of this geometric object. LinearRing
envelope The minimum bounding box for this Geometry, returned as a Geometry. Polygon
getBBox The minimum bounding box for this Geometry, returned as an array. Also see envelope() Array
centroid The mathematical centroid for this geometry as a Point. For polygons, the result is not guaranteed to be interior. Point
length The length of this Curve in its associated spatial reference. Float
greatCircleLength The length of this Curve on the earth, returns meters. Float
haversineLength The length of this Curve in degrees. Float
y The y-coordinate value for this Point. Float
x The x-coordinate value for this Point. Float
numGeometries The number of component geometries in this collection Integer
geometryN Returns the geometry N in this collection. Note that the index starts at 1. Geometry
startPoint The start Point of this LineString Point
endPoint The end Point of this LineString Point
isRing Returns 1 (TRUE) if this Curve is closed() and this Curve isSimple(). Boolean
isClosed Returns 1 (TRUE) if this Curve is closed. StartPoint() == EndPoint(). Boolean
getComponents Get all sub-geometry components of the geometry Array of geometries
numPoints The number of Points in this LineString Integer
pointN Returns the specified Point N in this LineString. Note that the index starts at 1. Point
exteriorRing Returns the exterior ring of this Polygon. LineString
numInteriorRings Returns the number of interior rings in this Polygon. Integer
interiorRingN Returns the Nth interior ring for this Polygon as a LineString. Note that the index starts at 1. LineString
dimension The inherent dimension of this geometric object. In non-homogeneous collections, this will return the largest topological dimension of the contained objects. Integer
geometryType Returns the name of the instantiable subtype of Geometry of which this geometric object is an instantiable member. The name of the subtype of Geometry is returned as a string. String
SRID Returns the Spatial Reference System ID for this geometric object. integer
setSRID Set the Spatial Reference System ID for this geometric object. NULL
asArray Get the given geometry as an array of components (recursive) Array
getGeoInterface Get the geometryType and Coordinates as an array Array
isEmpty TRUE if this geometry contains no vertices Boolean

Aliases

Method Description Returns
getCentroid Alias for centroid() Point
getArea Alias for area() Float
getX Alias for x() Float
getY Alias for y() Float
getGeos Alias for geos() GEOSGeometry
getGeomType Alias for geometryType() String
getSRID Alias for SRID() Integer
asText Alias for $this->out('wkt') String
asBinary Alias for $this->out('wkb') String

Advanced Methods

The GEOS-php extension needs to be installed for these functions to be available

Method Description Returns
geos Return a GEOSGeometry object representing this geometry GEOSGeometry
setGeos Set a GEOSGeometry object representing this geometry NULL
pointOnSurface A Point guaranteed to be within a polygon Point
equals Returns 1 (TRUE) if this geometry is “spatially equal” to another Geometry Boolean
equalsExact Returns 1 (TRUE) if this gemometric object is exactly the same as another object, including the ordering of component parts Boolean
relate Returns 1 (TRUE) if this geometric object is spatially related to anotherGeometry by testing for intersections between the interior, boundary and exterior of the two geometric objects as specified by the values in the intersectionPatternMatrix. This returns FALSE if all the tested intersections are empty except exterior (this) intersect exterior (another). Boolean
checkValidity Boolean
isSimple Returns 1 (TRUE) if this geometry does not pass through the same point in space more than once Boolean
project Given a Point, Project the geometry from from one SRID to another Geometry
buffer Returns a geometric object that represents all Points whose distance from this geometric object is less than or equal to distance. Calculations are in the spatial reference system of this geometric object. Because of the limitations of linear interpolation, there will often be some relatively small error in this distance, but it should be near the resolution of the coordinates used. Geometry
intersection Returns a geometric object that represents the Point set intersection of this geometric object with anotherGeometry. See http://en.wikipedia.org/wiki/Intersection_(set_theory) Geometry
convexHull Returns a geometric object that represents the convex hull of this geometric object. See http://en.wikipedia.org/wiki/Convex_hull Geometry
difference Returns a geometric object that represents the Point set difference of this geometric object with anotherGeometry. Geometry
symDifference Returns a geometric object that represents the Point set symmetric difference of this geometric object with another Geometry. See http://en.wikipedia.org/wiki/Symmetric_difference Geometry
union Returns a geometric object that represents the Point set union of this geometric object with anotherGeometry. See http://en.wikipedia.org/wiki/Union_(set_theory) Geometry
simplify Simplifies the geometry according to the passed tolerance. All vertices in the simplified geometry will be within the tolerance distance of the original geometry. If too large a tolerance is passed, the result may be an empty geometry. Geometry
disjoint Returns 1 (TRUE) if this geometric object is “spatially disjoint” from another Geometry. Boolean
touches Returns 1 (TRUE) if this geometric object “spatially touches” another Geometry. Boolean
intersects Returns 1 (TRUE) if this geometric object “spatially intersects” another Geometry. Boolean
crosses Returns 1 (TRUE) if this geometric object “spatially crosses? another Geometry. Boolean
within Returns 1 (TRUE) if this geometric object is “spatially within” another Geometry. Boolean
contains Returns 1 (TRUE) if this geometric object “spatially contains” another Geometry. Boolean
overlaps Returns 1 (TRUE) if this geometric object “spatially overlaps” another Geometry. Boolean
covers Alias for contains() Boolean
coveredBy Alias for within() Boolean
distance Returns the shortest distance between any two Points in the two geometric objects as calculated in the spatial reference system of this geometric object. Because the geometries are closed, it is possible to find a point on each geometric object involved, such that the distance between these 2 points is the returned distance between their geometric objects. Float
hausdorffDistance See http://en.wikipedia.org/wiki/Hausdorff_distance Float

Placeholders

These methods are part of the specification, but are not really supported by geoPHP.

Method Description Returns
hasZ returns FALSE. geoPHP does not support Z values at the moment. Boolean
is3D returns FALSE. geoPHP does not support 3D geometries at the moment. Boolean
isMeasured returns FALSE. geoPHP does not yet support M values Boolean
coordinateDimension returns 2. geoPHP only supports 2-dimentional space Integer
z returns NULL. geoPHP does not support Z values at the moment NULL
m returns NULL. geoPHP does not support M values NULL