OGR/PHP
Extension
Introduction
The OGR library is a C++ open source
library (and command-line tools) providing read (and sometimes write) access
to a variety of vector file formats
including ESRI Shapefiles, S-57, SDTS, PostGIS, Oracle Spatial, and Mapinfo
mid/mif and TAB formats.
The C API is generally easy
to call from other languages which allow call out to DLLs functions, such
as Visual Basic, or Delphi.
The OGR/PHP extension enables
PHP users to access the functionalities included in the OGR library.
This extension can be used as built-in PHP or as dynamic library (".dll"
on Windows or ".so" on Unix).
This extension was developed
and is currently being maintained by DM Solutions Group. Special thanks
go to Lars V. Nielsen and Hvenegaard & Meklenborg
for funding the initial development of this extension and allowing it to
remain open source.
Installation
The php_ogr.dll is located in /ms4w/Apache/php/extensions.
Testing
To verify that the OGR/PHP extension
was installed properly, check PHP's list of loaded extensions by clicking here.
If the PHP/OGR extension was successfully loaded,
you should see an "OGR" table stating that OGR support is enabled.
Functions documentation
The C API documentation
was created using Doxygen and is part of the GDAL/OGR documentation.
In addition to OGR functions, four CPL functions for handling error are made
available to the user: CPLErrorReset, CPLGetLastErrorNo, CPLGetLastErrorMsg
and CPLGetLastErrorType. Information on these functions can be found
on this page.
Information and bug reporting
The gdal-dev@lists.osgeo.org mailing list can
be used for discussion of development and user issues related to OGR and related
technologies. Subscriptions can be done, and archives reviewed
on the web.
Examples
There are a few examples showing
how to use the functions in the PHP/OGR extension module. Consult the
README_EXAMPLES.TXT in the /ms4w/apps/php_ogr/examples directory to get
more information on what is the purpose of each example.
Each example must be invoked
from the command-line.
Example: ./php -q ogr2tab.php
/path/to/outputfilename.tab /path/to/sourcefilename.tab
"ogr2ogr.php" shows mostly the
following:
- Opening an existing data
source with a specific driver
- Creating a new data source
- Accessing a layer
- Creating a new layer
- Adding fields on a layer
- Getting features from a
layer
- Creating new features on
a layer
- Testing capabilities of
a data source or a layer
"ogr2tab.php" is accomplishing
the same operations as "ogr2ogr.php" but is concerned especially with the
MapInfo File format.
"ogr_spatialfilter.php" shows
mostly how to set a spatial filter and an attribute filter.
"ogr2tab_spatialfilter.php"
is accomplishing the same operations as "ogr_spatialfilter.php" but is used
exclusively with MapInfo File format.
"ogr_sql.php" demonstrates how
to build an SQL statement and apply an SQL request to a data source.
"ogr2tab_sql.php" is a copy
of "ogr_sql.php" and is concerned with the MapInfo File format.
"ogr_update.php" demonstrates
the following items:
- Accessing a specific feature
by specifying a feature id
- Getting a field definition
- Getting a field name
- Setting a field value
- Getting a geometry from
a feature
- Setting a geometry to a
feature
"ogr2tab_update.php" is a copy of "ogr_update.php" but is concerned with
the MapInfo File format.
"ogr_dump.php" shows the following
functionalities:
- Getting geometry components
from which geometry is built from, like point coordinates for a linestring,
linestring for a polygon and so on
- Getting geometry name
- Getting the number of geometry
components
"ogr_write.php" demonstrates the
following functionalities:
- Accessing a specific layer
- Creating a new field definition
and assigning it to a layer
- Creating a new feature on
a layer
- Setting a field value
- Creating a new geometry
(point, linestring, polygon) and adding it to a feature
"ogr_setgetfield.php" shows how
to get and to set field values of various types inside a feature.