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 multipoint 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 exampleformatconverter 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 ExtendedWKT
 WKB Enables reading and writing WKB (Well Known Binary). This is very fast.
 EWKT Enables reading and writing ExtendedWKB (for use with PostGIS)
 GeoJSON Enables reading and writing GeoJSON
 KML Enables reading and writing KML (Google Earth)
 GoogleGeocode Enables geocoding and reversegeocoding 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. GEOSphp 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 ycoordinate value for this Point.

Float

x

The xcoordinate 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 subgeometry 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 nonhomogeneous 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 GEOSphp 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 2dimentional 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
