[geos-commits] r3070 - in trunk/php: . test
svn_geos at osgeo.org
svn_geos at osgeo.org
Thu Jun 24 05:20:36 EDT 2010
Author: strk
Date: 2010-06-24 09:20:36 +0000 (Thu, 24 Jun 2010)
New Revision: 3070
Modified:
trunk/php/geos.c
trunk/php/test/test.php
Log:
WKBWriter::{set,get}IncludeSRID (and test)
Modified: trunk/php/geos.c
===================================================================
--- trunk/php/geos.c 2010-06-24 09:07:10 UTC (rev 3069)
+++ trunk/php/geos.c 2010-06-24 09:20:36 UTC (rev 3070)
@@ -1819,6 +1819,8 @@
PHP_METHOD(WKBWriter, setOutputDimension);
PHP_METHOD(WKBWriter, getByteOrder);
PHP_METHOD(WKBWriter, setByteOrder);
+PHP_METHOD(WKBWriter, setIncludeSRID);
+PHP_METHOD(WKBWriter, getIncludeSRID);
PHP_METHOD(WKBWriter, writeHEX);
static function_entry WKBWriter_methods[] = {
@@ -1827,6 +1829,8 @@
PHP_ME(WKBWriter, setOutputDimension, NULL, 0)
PHP_ME(WKBWriter, getByteOrder, NULL, 0)
PHP_ME(WKBWriter, setByteOrder, NULL, 0)
+ PHP_ME(WKBWriter, getIncludeSRID, NULL, 0)
+ PHP_ME(WKBWriter, setIncludeSRID, NULL, 0)
PHP_ME(WKBWriter, writeHEX, NULL, 0)
{NULL, NULL, NULL}
};
@@ -1972,8 +1976,45 @@
}
+/**
+ * bool GEOSWKBWriter::getIncludeSRID();
+ */
+PHP_METHOD(WKBWriter, getIncludeSRID)
+{
+ GEOSWKBWriter *writer;
+ int ret;
+ zend_bool retBool;
+ writer = (GEOSWKBWriter*)getRelay(getThis(), WKBWriter_ce_ptr);
+ ret = GEOSWKBWriter_getIncludeSRID(writer);
+ retBool = ret;
+
+ RETURN_BOOL(retBool);
+}
+
+/**
+ * void GEOSWKBWriter::setIncludeSRID(bool);
+ */
+PHP_METHOD(WKBWriter, setIncludeSRID)
+{
+ GEOSWKBWriter *writer;
+ int inc;
+ zend_bool incVal;
+
+ writer = (GEOSWKBWriter*)getRelay(getThis(), WKBWriter_ce_ptr);
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "b", &incVal)
+ == FAILURE)
+ {
+ RETURN_NULL();
+ }
+
+ inc = incVal;
+ GEOSWKBWriter_setIncludeSRID(writer, inc);
+}
+
+
/* -- Free functions ------------------------- */
/**
Modified: trunk/php/test/test.php
===================================================================
--- trunk/php/test/test.php 2010-06-24 09:07:10 UTC (rev 3069)
+++ trunk/php/test/test.php 2010-06-24 09:20:36 UTC (rev 3070)
@@ -1773,6 +1773,17 @@
}
+ public function testWKBWriter_getsetIncludeSRID()
+ {
+ $writer = new GEOSWKBWriter();
+
+ $this->assertEquals(FALSE, $writer->getIncludeSRID());
+ $writer->setIncludeSRID(TRUE);
+ $this->assertEquals(TRUE, $writer->getIncludeSRID());
+ $writer->setIncludeSRID(FALSE);
+ $this->assertEquals(FALSE, $writer->getIncludeSRID());
+ }
+
public function testWKBWriter_writeHEX()
{
$writer = new GEOSWKBWriter();
@@ -1786,45 +1797,103 @@
}
$g = $reader->read('POINT(6 7)');
+ $g->setSRID(43);
$writer->setOutputDimension(2); // 2D
- $writer->setByteOrder(1); // LITTLE endian
- $this->assertEquals('010100000000000000000018400000000000001C40',
+ // 2D LITTLE endian
+ $writer->setByteOrder(1);
+ $this->assertEquals(
+ '010100000000000000000018400000000000001C40',
$writer->writeHEX($g));
- $writer->setByteOrder(0); // BIG endian
+ // 2D LITTLE endian + SRID
+ $writer->setIncludeSRID(TRUE);
+ $this->assertEquals(
+ '01010000202B00000000000000000018400000000000001C40',
+ $writer->writeHEX($g));
+ $writer->setIncludeSRID(FALSE);
+
+ // 2D BIG endian
+ $writer->setByteOrder(0);
$this->assertEquals('00000000014018000000000000401C000000000000',
$writer->writeHEX($g));
+ // 2D BIG endian + SRID
+ $writer->setIncludeSRID(TRUE);
+ $this->assertEquals(
+ '00200000010000002B4018000000000000401C000000000000',
+ $writer->writeHEX($g));
+ $writer->setIncludeSRID(FALSE);
$writer->setOutputDimension(3); // 3D
- $writer->setByteOrder(1); // LITTLE endian
- $this->assertEquals('010100000000000000000018400000000000001C40',
+ // 3D LITTLE endian (2D input)
+ $writer->setByteOrder(1);
+ $this->assertEquals(
+ '010100000000000000000018400000000000001C40',
$writer->writeHEX($g));
- $writer->setByteOrder(0); // BIG endian
+ // 3D LITTLE endian + SRID (2D input)
+ $writer->setIncludeSRID(TRUE);
+ $this->assertEquals(
+ '01010000202B00000000000000000018400000000000001C40',
+ $writer->writeHEX($g));
+ $writer->setIncludeSRID(FALSE);
+
+ // 3D BIG endian (2D input)
+ $writer->setByteOrder(0);
$this->assertEquals('00000000014018000000000000401C000000000000',
$writer->writeHEX($g));
+ // 3D BIG endian + SRID (2D input)
+ $writer->setIncludeSRID(TRUE);
+ $this->assertEquals(
+ '00200000010000002B4018000000000000401C000000000000',
+ $writer->writeHEX($g));
+ $writer->setIncludeSRID(FALSE);
+
$g = $reader->read('POINT(6 7 8)');
+ $g->setSRID(53);
$writer->setOutputDimension(2); // 2D
- $writer->setByteOrder(1); // LITTLE endian
+ // 2D LITTLE endian (3D input)
+ $writer->setByteOrder(1);
$this->assertEquals('010100000000000000000018400000000000001C40',
$writer->writeHEX($g));
- $writer->setByteOrder(0); // BIG endian
+ // 2D LITTLE endian + SRID (3D input)
+ $writer->setIncludeSRID(TRUE);
+ $writer->setByteOrder(1);
+ $this->assertEquals(
+ '01010000203500000000000000000018400000000000001C40',
+ $writer->writeHEX($g));
+ $writer->setIncludeSRID(FALSE);
+ // 2D BIG endian (3D input)
+ $writer->setByteOrder(0);
$this->assertEquals('00000000014018000000000000401C000000000000',
$writer->writeHEX($g));
+ // 2D BIG endian + SRID (3D input)
+ $writer->setIncludeSRID(TRUE);
+ $this->assertEquals(
+ '0020000001000000354018000000000000401C000000000000',
+ $writer->writeHEX($g));
+ $writer->setIncludeSRID(FALSE);
$writer->setOutputDimension(3); // 3D
- $writer->setByteOrder(1); // LITTLE endian, 2d
+ // 3D LITTLE endian (3D input)
+ $writer->setByteOrder(1);
$this->assertEquals(
'010100008000000000000018400000000000001C400000000000002040',
$writer->writeHEX($g));
- $writer->setByteOrder(0); // BIG endian, 3d
+ // 3D BIG endian (3D input)
+ $writer->setByteOrder(0);
$this->assertEquals(
'00800000014018000000000000401C0000000000004020000000000000',
$writer->writeHEX($g));
+ // 3D BIG endian + SRID (3D input)
+ $writer->setIncludeSRID(TRUE);
+ $this->assertEquals(
+ '00A0000001000000354018000000000000401C0000000000004020000000000000',
+ $writer->writeHEX($g));
+ $writer->setIncludeSRID(FALSE);
}
}
More information about the geos-commits
mailing list