public function EWKB::write in geoPHP 8
Same name and namespace in other branches
- 7 geoPHP/lib/adapters/EWKB.class.php \EWKB::write()
Serialize geometries into an EWKB binary string.
Parameters
Geometry $geometry:
Return value
string The Extended-WKB binary string representation of the input geometries
Overrides WKB::write
File
- geoPHP/
lib/ adapters/ EWKB.class.php, line 52
Class
- EWKB
- EWKB (Extended Well Known Binary) Adapter
Code
public function write(Geometry $geometry, $write_as_hex = FALSE) {
// We always write into NDR (little endian)
$wkb = pack('c', 1);
switch ($geometry
->getGeomType()) {
case 'Point':
$wkb .= pack('L', 1);
$wkb .= $this
->writePoint($geometry);
break;
case 'LineString':
$wkb .= pack('L', 2);
$wkb .= $this
->writeLineString($geometry);
break;
case 'Polygon':
$wkb .= pack('L', 3);
$wkb .= $this
->writePolygon($geometry);
break;
case 'MultiPoint':
$wkb .= pack('L', 4);
$wkb .= $this
->writeMulti($geometry);
break;
case 'MultiLineString':
$wkb .= pack('L', 5);
$wkb .= $this
->writeMulti($geometry);
break;
case 'MultiPolygon':
$wkb .= pack('L', 6);
$wkb .= $this
->writeMulti($geometry);
break;
case 'GeometryCollection':
$wkb .= pack('L', 7);
$wkb .= $this
->writeMulti($geometry);
break;
}
if ($write_as_hex) {
$unpacked = unpack('H*', $wkb);
return $unpacked[1];
}
else {
return $wkb;
}
}