private function getTypeName($type)
    {
        switch ($this->getTypePrimitive($type)) {
            case (self::WKB_TYPE_POINT):
                $typeName = self::TYPE_POINT;
                break;
            case (self::WKB_TYPE_LINESTRING):
                $typeName = self::TYPE_LINESTRING;
                break;
            case (self::WKB_TYPE_POLYGON):
                $typeName = self::TYPE_POLYGON;
                break;
            case (self::WKB_TYPE_MULTIPOINT):
                $typeName = self::TYPE_MULTIPOINT;
                break;
            case (self::WKB_TYPE_MULTILINESTRING):
                $typeName = self::TYPE_MULTILINESTRING;
                break;
            case (self::WKB_TYPE_MULTIPOLYGON):
                $typeName = self::TYPE_MULTIPOLYGON;
                break;
            case (self::WKB_TYPE_GEOMETRYCOLLECTION):
                $typeName = self::TYPE_GEOMETRYCOLLECTION;
                break;
            case (self::WKB_TYPE_CIRCULARSTRING):
                $typeName = self::TYPE_CIRCULARSTRING;
                break;
            case (self::WKB_TYPE_COMPOUNDCURVE):
                $typeName = self::TYPE_COMPOUNDCURVE;
                break;
            case (self::WKB_TYPE_CURVEPOLYGON):
                $typeName = self::TYPE_CURVEPOLYGON;
                break;
            case (self::WKB_TYPE_MULTICURVE):
                $typeName = self::TYPE_MULTICURVE;
                break;
            case (self::WKB_TYPE_MULTISURFACE):
                $typeName = self::TYPE_MULTISURFACE;
                break;
            case (self::WKB_TYPE_POLYHEDRALSURFACE):
                $typeName = self::TYPE_POLYHEDRALSURFACE;
                break;
            default:
                throw new UnexpectedValueException('Unsupported WKB type "' . $this->type . '"');
        }

        return strtoupper($typeName);
    }